home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / mail / 1st_101b.zip / ADVANCED.DOC < prev    next >
Text File  |  1992-09-28  |  118KB  |  3,186 lines

  1.  
  2.  
  3.  
  4.  
  5.       ┌──────────────────────────────────────────────────────────────────┐
  6.       │                                                                  │
  7.       │                                                                  │
  8.       │      ┌────────────────────────────────────────────────────┐      │
  9.       │      │                                                    │      │
  10.       │      │                                                    │      │
  11.       │      │                                                    │      │
  12.       │      │                                                    │      │
  13.       │      │                                                    │      │
  14.       │      │                                                    │      │
  15.       │      │                                                    │      │
  16.       │      │                                                    │      │
  17.       │      │                                                    │      │
  18.       │      │                                                    │      │
  19.       │      │                                                    │      │
  20.       │      │                                                    │      │
  21.       │      │                                                    │      │
  22.       │      │                                                    │      │
  23.       │      │                 ▄██                                │      │
  24.       │      │                  ██ ▄▄▄▄▄▄ ▄▄▄▄▄▄                  │      │
  25.       │      │                  ██ ██▀▀▀▀ ▀▀██▀▀                  │      │
  26.       │      │                  ██ ▀▀▀▀██   ██                    │      │
  27.       │      │                  ██ ██████   ██                    │      │
  28.       │      │                                                    │      │
  29.       │      │                     1stReader                      │      │
  30.       │      │             The Advanced User's Guide              │      │
  31.       │      │                                                    │      │
  32.       │      │                                                    │      │
  33.       │      │                    Entire work                     │      │
  34.       │      │            Copyright 1992 by Mark Herring          │      │
  35.       │      │                All Rights Reserved                 │      │
  36.       │      │                                                    │      │
  37.       │      │                                                    │      │
  38.       │      │                                                    │      │
  39.       │      │                                                    │      │
  40.       │      │                                                    │      │
  41.       │      │                                                    │      │
  42.       │      │                                                    │      │
  43.       │      │                                                    │      │
  44.       │      │                                                    │      │
  45.       │      │                                                    │      │
  46.       │      │                                                    │      │
  47.       │      │                                                    │      │
  48.       │      │                                                    │      │
  49.       │      │                     Sparkware                      │      │
  50.       │      │                Post Office Box 386                 │      │
  51.       │      │           Hendersonville, Tennessee   37077        │      │
  52.       │      │                                                    │      │
  53.       │      │                                                    │      │
  54.       │      │                                                    │      │
  55.       │      └────────────────────────────────────────────────────┘      │
  56.       │                                                                  │
  57.       │                                                                  │
  58.       └──────────────────────────────────────────────────────────────────┘
  59.  
  60.  
  61.  
  62.  
  63.                                     NOTICE
  64.      
  65.          EXCEPT FOR THE EXPRESS WARRANTY SET FORTH ABOVE, SPARKWARE
  66.          GRANTS NO OTHER WARRANTIES, EXPRESSED OR IMPLIED, BY STATUE
  67.          OR OTHERWISE, REGARDING THE DISK, PROGRAMS AND RELATED
  68.          MATERIALS, THEIR FITNESS FOR ANY PURPOSE, THEIR QUALITY,
  69.          THEIR MERCHANTABILITY, OR OTHERWISE.
  70.      
  71.          THE LIABILITY OF SPARKWARE UNDER THE WARRANTY SET FORTH
  72.          ABOVE SHALL BE LIMITED TO THE AMOUNT PAID BY THE CUSTOMER
  73.          FOR THE PRODUCT.  IN NO EVENT SHALL SPARKWARE BE LIABLE FOR
  74.          ANY SPECIAL, CONSEQUENTIAL, OR OTHER DAMAGES FOR BREACH OF
  75.          WARRANTY.
  76.      
  77.          SPARKWARE RESERVES THE RIGHT TO MAKE ANY CHANGES TO THESE
  78.          PROGRAMS, DOCUMENTATION AND CUSTOMER SUPPORT PLANS AT ANY
  79.          TIME WITHOUT PRIOR NOTICE.
  80.  
  81.          THIS SOFTWARE PROGRAM IS A PROPRIETY PRODUCT OF SPARKWARE
  82.          AND IS PROTECTED BY COPYRIGHTS AND INTERNATIONAL TREATIES.
  83.          YOU MUST TREAT THIS SOFTWARE LIKE ANY OTHER COPYRIGHTED
  84.          MATERIAL, EXCEPT THAT YOU MAY MAKE AN ARCHIVAL COPY OF THE
  85.          SOFTWARE FOR EACH COPY THAT IS LICENSED TO YOU.  YOU MAY
  86.          DISTRIBUTE THE SOFTWARE TO OTHERS SO LONG AS (A) THE
  87.          1ST.KEY OR QMAIL4.KEY FILE IS NOT DISTRIBUTED, (B) THE
  88.          SOFTWARE IS DISTRIBUTED UNMODIFIED.  YOU MAY NOT DECOMPILE,
  89.          DISASSEMBLE, REVERSE ENGINEER, COPY, TRANSFER, OR OTHERWISE
  90.          USE OR MODIFY THIS SOFTWARE EXCEPT AS STATED HEREIN.
  91.      
  92.          SPARKWARE GRANTS YOU THE RIGHT TO USE THIS SOFTWARE FOR
  93.          TRIAL PERIOD NOT TO EXCEED THIRTY (30) DAYS.  USE AFTER
  94.          THIRTY DAYS REQUIRES REGISTRATION AS DOCUMENTED IN THIS
  95.          MANUAL.
  96.      
  97.          Qmail 1stReader
  98.          Entire work Copyright 1992 by Mark Herring
  99.          All Rights Reserved
  100.      
  101.          Sparkware
  102.          Post Office Box 386
  103.          Hendersonville, Tennessee   37077-0386
  104.      
  105.          (615) 230-8822  (BBS)
  106.          (615) 230-MAIL  (Office)
  107.          10am-5pm CT weekdays
  108.      
  109.      
  110.          PCBoard is a trademark of Clark Development Company
  111.  
  112.  
  113.  
  114.          TABLE OF CONTENTS
  115.  
  116.          Introduction..................................... 1
  117.          DOS command line switches........................ 1
  118.            /4DOS.......................................... 1
  119.            /CALL:......................................... 2
  120.            /FIFO:......................................... 2
  121.            /MAXLINES:..................................... 2
  122.            /NON........................................... 2
  123.            /QWK:.......................................... 3
  124.            /REP:.......................................... 3
  125.            /SETUP:........................................ 3
  126.            /TIME:......................................... 3
  127.            /XON........................................... 3
  128.          Support files.................................... 4
  129.            .BAT (or .BTM) files........................... 5
  130.               $$MAIL.BAT.................................. 5
  131.               $$REPLY.BAT................................. 5
  132.               $$CALL.BAT.................................. 6
  133.               $$1ST.BAT................................... 6
  134.               $$xxx.BAT................................... 6
  135.               GO.BAT...................................... 7
  136.               $$INTRO.BAT................................. 7
  137.               $$REPLIES.BAT............................... 8
  138.               $$FILER.BAT................................. 8
  139.               $$EXIT.BAT.................................. 8
  140.               $$SPELL.BAT................................. 9
  141.               $$CNAMES.BAT................................ 9
  142.               $$Fxx.BAT................................... 9
  143.            .CMD files.....................................10
  144.               $$1ST.CMD...................................10
  145.               $$ppff.CMD..................................10
  146.               Multiple EDITORS and LIST programs..........11
  147.            SHELL modifiers................................12
  148.               /API: <filespec>............................12
  149.               /CLS and /NOCLS.............................12
  150.               /EXPORT: <filespec>.........................13
  151.               /IN: <filespec1>  /OUT: <filespec2>.........13
  152.               /NS and /SS.................................14
  153.               /PAUSE......................................14
  154.               KEYBOARD.$$$................................14
  155.               MESSAGE.$$$.................................15
  156.            .LST (Picklist) files..........................16
  157.            .DOS files.....................................17
  158.          The 1stReader Applications Program Interface.....18
  159.             1stReader Integer API table...................18
  160.             1stReader Long Integer API Table..............21
  161.             1stReader Text API Table......................22
  162.             Online help reference.........................24
  163.             @variables supported by 1stReader.............26
  164.          1stReader script language........................28
  165.             ABORT <value>.................................28
  166.             API <value>...................................28
  167.             AUTOEXIT <on|off>.............................28
  168.  
  169.  
  170.  
  171.  
  172.             CAPTURE <on|off>..............................28
  173.             CLS...........................................29
  174.             COMMENT "string"..............................29
  175.             COUNT <qwk|rep>...............................29
  176.             DEBUG.........................................29
  177.             EDIT <filespec>...............................29
  178.             EXIT..........................................29
  179.             FOUND=<value>.................................29
  180.             GOSUB <label>.................................30
  181.             GOTO <label>..................................30
  182.             HANGUP........................................30
  183.             HELP <number>.................................30
  184.             IF............................................30
  185.             KEYSTROKE=<value>.............................31
  186.             KILL <filespec>...............................31
  187.             LIST <filespec>...............................31
  188.             LOCKLINE <row> <attribute>....................31
  189.             LOOKFOR "prompt string" "transmit string".....31
  190.             PAUSE [seconds]...............................32
  191.             PLAY "string".................................32
  192.             REPLIES.......................................32
  193.             RETURN [label]................................32
  194.             RUN <script filespec> [label].................32
  195.             SHOW <filespec>...............................32
  196.             SWITCH <value>................................33
  197.             TERMINAL......................................33
  198.             TRANSMIT "string".............................33
  199.             TRANSMIT; "string"............................33
  200.             TIMEOUT <seconds>.............................34
  201.             UPLOAD <filespec>.............................34
  202.             WAITFOR "prompt string" [seconds].............34
  203.             WEEKDAY.......................................34
  204.             Special @variables............................35
  205.             Special characters............................36
  206.          Hints and Tips...................................37
  207.             Support for .BIN and .B1N files...............37
  208.             The WELCOME file..............................37
  209.             Using KEYBOARD.$$$ from the internal editor...38
  210.             Pre-Print and Post-Print strings..............38
  211.             Printer definition............................38
  212.             Create your OWN help files....................38
  213.             1stReader is network ready....................39
  214.             GO.ASC, GO.ANS, GO.BIN, GO.B1N................40
  215.             Automatic DOORWAY ON and DOORWAY OFF modes....40
  216.             "Header" files................................41
  217.             Auto sensing dialog boxes.....................41
  218.             "Ok" and "Cancel" buttons.....................41
  219.             Attention John Hancock fans!..................42
  220.             Conference .BAT, .BTM, .CMD and .LST files....42
  221.             Support for DOOR.ID...........................42
  222.             Downloading files.............................43
  223.             Longer signatures.............................43
  224.             Multiple signatures...........................43
  225.             Support for the "1ST" file....................44
  226.  
  227.  
  228.  
  229.  
  230.             Automatic SuperShell..........................44
  231.             Nonstandard serial ports......................44
  232.             New commands supported in DOOR.ID.............45
  233.             LIST is restricted............................45
  234.             Robocomm-named packets supported..............45
  235.             QMAIL4 is assumed.............................45
  236.             Three button mice users.......................45
  237.             Using SPACE BAR and SHIFT+ENTER...............46
  238.             Protect those 'questionable' taglines.........46
  239.             'Hotkey' your .CMD and .LST entries...........46
  240.             Entry fields are accessable...................46
  241.             Sysop can use Qmail Door in DOS using 1st.....47
  242.             Control characters in .LST files..............47
  243.             $$DIAL.SCR supported..........................48
  244.             Additional systems supported..................48
  245.             Carriage returns in the modem init string.....49
  246.             SERVICES.NEW..................................49
  247.             File formats..................................50
  248.  
  249.  
  250.  
  251.  
  252.          Introduction
  253.          ------------
  254.  
  255.  
  256.          This advanced user's guide is designed to help "advanced"
  257.          users of 1stReader access all of the features found in the
  258.          1stReader offline mail system.
  259.  
  260.          If you are a new to the concept of offline mail reader
  261.          systems, we STRONGLY recommend that you do NOT use this guide
  262.          until you are familiar with 1stReader.
  263.  
  264.          Ok, with that out of the way we've established that you are
  265.          a "power user".  Computer screens dim when you walk into the
  266.          room.  You can quote passages from the DSZ manual from
  267.          memory.  Nothing is beyond you or your capabilities.
  268.  
  269.          1stReader was designed with the novice user in mind, but
  270.          don't worry, we've left plenty of "features" for you use
  271.          inside the system.  The design philosophy behind 1stReader
  272.          was to provide an interface for novice users that they can
  273.          easily understand and use.  The "power user" features are
  274.          hidden underneath this interface, and you have the ability to
  275.          access them.
  276.  
  277.          Remember, You do NOT need to use this guide in order to fully
  278.          use 1stReader.  However, you can change the way 1stReader
  279.          operates and functions by following this tips in this guide.
  280.  
  281.  
  282.  
  283.          DOS command line switches
  284.          -------------------------
  285.  
  286.          1stReader support a number of DOS command line startup
  287.          switches.  These switches, when placed after the DOS command
  288.          "1ST.EXE", allow you to change how 1stReader works.
  289.  
  290.  
  291.          /4DOS          Forces 1stReader to change all .BAT file
  292.                         extensions used in the program to .BTM files
  293.                         (BaTch in Memory).  If you are not using
  294.                         4DOS's .BTM files you can ignore this switch.
  295.  
  296.                         Example:  1ST /4DOS
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.                                        1
  306.  
  307.  
  308.  
  309.  
  310.          /CALL:         Causes 1stReader to begin calling a list of
  311.                         systems automatically from the command prompt.
  312.                         You must add the QWK-ID name of each system
  313.                         you wish to call.  This is switch lets you
  314.                         call bulletin board systems from a batch file.
  315.  
  316.                         Example:  1ST /CALL: SPARKY SALTAIR ELLTECH
  317.  
  318.  
  319.          /FIFO:         1stReader checks to see if you have a 16550A
  320.                         UART in your system.  If found then 1st will
  321.                         set the UART buffer size to 8 bytes.  You can
  322.                         over-ride this buffer size by using the /FIFO
  323.                         switch.  Accepted values are 1,4,8 and 14.
  324.  
  325.                         Example:  1ST /FIFO: 14
  326.  
  327.  
  328.          /MAXLINES:     The internal editor in 1stReader lets you
  329.                         create replies of up to 200 lines each.  If
  330.                         you decide to use an external editor then the
  331.                         size of your replies can be as large as you
  332.                         wish.
  333.  
  334.                         1stReader breaks your replies at 99 lines per
  335.                         message.  However, you can adjust the size of
  336.                         the reply by using the /MAXLINES: switch.  The
  337.                         command "1ST /MAXLINES: 200" would cause
  338.                         1stReader to "break" long replies at 200 lines
  339.                         each.
  340.  
  341.  
  342.          /NON           1stReader uses "RTS" checking to determine
  343.                         when your modem is ready to send characters to
  344.                         the remote system.  You can disable ALL
  345.                         checking by using the /NON switch.
  346.  
  347.                         Example:  1ST /NON
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.                                        2
  364.  
  365.  
  366.  
  367.  
  368.          /QWK:          Since 1stReader is designed to work with "QWK"
  369.                         formatted mail packets, by default it looks
  370.                         for mail packets using the "Q*" file
  371.                         extension.  You can override this extension by
  372.                         using the /QWK command line switch.
  373.  
  374.                         Why would you want to change the extension?
  375.                         Later in this guide we cover two batch files
  376.                         named "$$INTRO.BAT" and "$$EXIT.BAT".
  377.                         Programmers can use these files to write
  378.                         programs that "convert" other non-QWK
  379.                         formatted mail packets to and from the QWK
  380.                         format.  The /QWK command switch lets them
  381.                         tell 1stReader which type of mail packet to
  382.                         scan for in the list of packets on file
  383.                         screen.
  384.  
  385.                         Example:  1ST /QWK: OPX
  386.  
  387.  
  388.          /REP:          The /REP command line switch works like the
  389.                         /QWK switch, except that it lets you change
  390.                         the default extension for mail reply packets.
  391.                         ".REP" is the extension used for QWK mail
  392.                         packets, but by using this switch you can
  393.                         change the extension to any value required.
  394.  
  395.                         Example:  1ST /REP: TMP
  396.  
  397.  
  398.          /SETUP:        This command line switch lets you specify the
  399.                         name of the .SET file to load when starting
  400.                         1stReader.
  401.  
  402.                         Example:  1ST /SETUP: NETWORK.SET
  403.  
  404.  
  405.          /TIME:         The /TIME command line switch works with the
  406.                         /CALL switch so you can set the time you wish
  407.                         to start calling the systems.  Remember, you
  408.                         MUST use "military" time if you wish to call
  409.                         systems after 12:59 pm.
  410.  
  411.                         Example:  1ST /CALL: SPARKY /TIME: 20:00
  412.  
  413.  
  414.          /XON           This command line switch works like the /NON
  415.                         switch, except that instead of turning off all
  416.                         forms of line checking, it forces 1stReader to
  417.                         use "XON/XOFF" checking.
  418.  
  419.  
  420.  
  421.                                        3
  422.  
  423.  
  424.  
  425.  
  426.          Support files
  427.          -------------
  428.  
  429.          There are a files you can place in your 1stReader system
  430.          directory that can help you change 1stReader's operation.
  431.  
  432.          Before we continue, we need to explain the file directory
  433.          structure used by 1stReader.  You can, of course, change this
  434.          layout in the "Setup" section of the system, but by default
  435.          this tree is used:
  436.  
  437.  
  438.          C:\1ST                             System subdirectory
  439.          C:\1ST\SCRIPTS                     Script files subdirectory
  440.          C:\1ST\PACKETS                     Mail packets location
  441.          C:\1ST\FILES                       Files you download go here
  442.          C:\1ST\PROGRAMS                    Programs area
  443.          C:\1ST\FOLDERS                     Folders area
  444.          C:\1ST\WORK                        Temp mail work area
  445.          C:\1ST\REP-WORK                    Temp reply work area
  446.          C:\1ST\SERVICES                    Temp services work area
  447.          C:\1ST\BBS\<QWK-ID>                "BBS" subdirectory
  448.  
  449.  
  450.          The two locations we are concerned about right now are the
  451.          "System subdirectory" (we'll call it SYSTEM) and the "BBS"
  452.          subdirectory (we'll call it BBS).  The "BBS" subdirectories
  453.          are created underneath the "C:\1ST\BBS\" area.  Each system
  454.          you call has a unique BBS subdirectory underneath this area.
  455.          It is here that all bulletins, archived file lists, script
  456.          files and other such items are stored for each system you
  457.          call.  So, when we refer to the BBS subdirectory, we are
  458.          actually referring to the unique subdirectory for a
  459.          particular system, not "C:\1ST\BBS\" itself.
  460.  
  461.          The files described below can be located in either the SYSTEM
  462.          subdirectory or in the BBS subdirectory.  1stReader will
  463.          always look in the BBS subdirectory for the file first.  If
  464.          the file is not found then the SYSTEM subdirectory is
  465.          checked.  The major exception to this rule is the 1stReader
  466.          "Opening screen".  Since you have not selected a bulletin
  467.          board system when you are at this screen then 1st only checks
  468.          the SYSTEM area.
  469.  
  470.          If the file is found in the BBS subdirectory then that file
  471.          will only work when you have selected that system from the
  472.          opening menu.  Otherwise, if the file is not found in the BBS
  473.          subdirectory but found in the SYSTEM subdirectory it will
  474.          work for ALL systems.
  475.  
  476.          There four different types of support files.  They are .BAT,
  477.          .CMD, .LST and .DOS files.
  478.  
  479.                                        4
  480.  
  481.  
  482.  
  483.  
  484.          .BAT (or .BTM) files
  485.          --------------------
  486.  
  487.          You can "by pass" the built-in features found in 1stReader
  488.          with your own favorites if you wish.  Of course, you can use
  489.          your own internal file LIST or EDITOR program by entering
  490.          their DOS commands in Setup's "EDITOR" section.  But you can
  491.          replace many of the internal systems found in 1stReader by
  492.          using batch files.
  493.  
  494.          1stReader will follow the normal BBS/SYSTEM search method to
  495.          locate these files unless specifically mentioned in the
  496.          descriptions.  Also, if you are using the /4DOS command line
  497.          switch then 1stReader will look for .BTMs instead.
  498.  
  499.  
  500.          $$MAIL.BAT
  501.          ----------
  502.  
  503.          If you wish to use your favorite telecommunications software
  504.          to call the remote bulletin board system you can replace the
  505.          internal module in 1stReader by creating a $$MAIL.BAT file.
  506.          This file passes along to the application the QWK-ID of the
  507.          system you have selected in the '%1' parameter in the batch
  508.          file.
  509.  
  510.          There are two communication systems that are designed to
  511.          transfer mail packets to and from Qmail Door and compatible
  512.          systems.  These two systems are ICOM from Liberation
  513.          Enterprises and ROBOCOMM from Parsons Technologies.  If you
  514.          wish to use either of these systems with 1stReader you need
  515.          to create a $$MAIL.BAT file that will CHDIR into the proper
  516.          subdirectory and then execute the program.
  517.  
  518.               For ICOM use the command:      ICOM /RUN:%1
  519.               For ROBOCOMM use the command:  ROBOCOMM /A%1 /R
  520.  
  521.          The QWK-ID for the system is passed in the '%1' parameter so
  522.          you need to make sure you have a "job" (for ICOM) or an
  523.          'agenda' (for ROBOCOMM) prepared to call the system.
  524.  
  525.  
  526.          $$REPLY.BAT
  527.          -----------
  528.  
  529.          This batch file works just like $$MAIL.BAT except that it is
  530.          used if you wish to transmit replies back to the bulletin
  531.          board system without picking up new mail.  If this batch file
  532.          is found and you have selected the "Mail" button from the
  533.          mail packets screen, and you also have replies on file, you
  534.          will be asked if you wish to only transmit replies to the
  535.          system.
  536.  
  537.                                        5
  538.  
  539.  
  540.  
  541.  
  542.          $$CALL.BAT
  543.          ----------
  544.  
  545.          This batch file works just like $$MAIL.BAT except that it is
  546.          used to call the bulletin board and place the user in an
  547.          interactive terminal mode.  You can interface 1stReader with
  548.          your favorite terminal program (ProComm, Telix, etc) by using
  549.          this batch file.
  550.  
  551.  
  552.          $$1ST.BAT
  553.          ---------
  554.  
  555.          1stReader will search for this batch file if you press the
  556.          [F6] key on your keyboard.  If the batch file is found then
  557.          1stReader will execute the batch file.  The QWK-ID of the
  558.          current system is passed along as the '%1' parameter.
  559.  
  560.          You can create $$1ST.BAT by pressing ALT+F6 while you are at
  561.          the "opening menu" screen.  If you press ALT+F6 while at a
  562.          keyboard entry field you can create custom $$ppff.BAT files
  563.          that execute only when you are in that particular entry field
  564.          AND you press [F6].
  565.  
  566.  
  567.          $$xxx.BAT
  568.          ---------
  569.  
  570.          This batch file works with the internal file manager.  The
  571.          "xxx" represents a file extension (ZIP, GIF, FAX, WAV, etc).
  572.          When you select a file from the file manager 1stReader will
  573.          take the extension of the file and search for a $$xxx.BAT
  574.          file.  If one is found then control is passed to the batch
  575.          file with the full name of the file passed as the '%1'
  576.          parameter.
  577.  
  578.          This file lets you add support for viewing GIF files from
  579.          within 1stReader or even transmitting FAX files by simply
  580.          selecting them.  For example, you could create a batch file
  581.          named $$GIF.BAT:
  582.  
  583.                                     @ECHO OFF
  584.                                     VIEW %1
  585.  
  586.          This batch assumes you have a program named "VIEW" that lets
  587.          you display .GIF files.  If you select a .GIF file from the
  588.          file manager then you will see the file on your screen.
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.                                        6
  596.  
  597.  
  598.  
  599.  
  600.          GO.BAT
  601.          ------
  602.  
  603.          1stReader looks for GO.BAT in the current subdirectory from
  604.          within the file manager.  If GO.BAT is found then the "GO"
  605.          button is automatically highlighted by 1stReader.
  606.  
  607.          The GO.BAT file is designed to be included inside archived
  608.          files.  1stReader lets a user unpack archives into the
  609.          "PROGRAMS" subdirectory.  If GO.BAT is included inside the
  610.          archive then all the user has to do is click on the "GO"
  611.          button and the program executes.
  612.  
  613.          Why support a GO.BAT file?  If you are a novice user and have
  614.          just unpacked an archive, sometimes it isn't apparent how to
  615.          execute the programs contained inside.  This gives the novice
  616.          an easy way to unpack and execute programs.
  617.  
  618.          We have always thought one of the problems with archived
  619.          files is that novices rarely understand how to unpack them
  620.          and use them.  Now, using 1stReader, they can simply select
  621.          the archive in the file manager, unpack it into its own
  622.          unique program subdirectory and then click on "GO" to run the
  623.          program.
  624.  
  625.          We hope that more authors begin to support the GO.BAT file.
  626.          1stReader also supports GO.EXE, GO.COM and GO.BTM as well.
  627.  
  628.  
  629.          $$INTRO.BAT
  630.          -----------
  631.  
  632.          This batch file is executed immediately after a mail packet
  633.          has been uncompressed.  The idea behind this batch file is to
  634.          allow third-party developers to "pre-process" the mail packet
  635.          before the user reads it.
  636.  
  637.          You can also use this batch file to convert other "foreign"
  638.          mail packet formats into QWK formats.  We can't be of much
  639.          help explaining how to do this in this guide, but feel free
  640.          to call our customer support system at (615) 230-8822 for
  641.          more information.
  642.  
  643.          Three parameters are passed to the $$INTRO.BAT file.  These
  644.          parameters are:
  645.  
  646.                   %1        Name of the QWK-ID for the system
  647.                   %2        Path to the work subdirectory
  648.                   %3        Path to the replies subdirectory
  649.  
  650.  
  651.  
  652.  
  653.                                        7
  654.  
  655.  
  656.  
  657.  
  658.          $$REPLIES.BAT
  659.          -------------
  660.  
  661.          This batch is executed by 1stReader as soon as a reply mail
  662.          packet is unbundled.  The idea behind this batch file is to
  663.          allow you to process the reply mail packet in any way you
  664.          wish before you read the mail packet.  The same parameters
  665.          used in the $$INTRO.BAT file are passed to this batch file
  666.          from 1stReader.
  667.  
  668.  
  669.          $$FILER.BAT
  670.          -----------
  671.  
  672.          This batch file will execute whenever you click on the
  673.          "Files" button in the "Read messages" screen.  It's designed
  674.          so you can process the NEWFILES.DAT file any way you wish.
  675.  
  676.          Only one parameter is passed in '%1' to the batch file, and
  677.          that is the full name of the NEWFILES.DAT filespec.
  678.  
  679.  
  680.          $$EXIT.BAT
  681.          ----------
  682.  
  683.          $$EXIT.BAT works just like $$INTRO.BAT, except that instead
  684.          of being a "preprocessor" for the mail packet it is a "post-
  685.          processor".  This batch file is called after you have exited
  686.          the mail packet but before the contents of the work
  687.          subdirectories are erased.
  688.  
  689.          Any files found in the REP-WORK subdirectory are included in
  690.          the .REP reply mail packet.
  691.  
  692.          Three parameters are passed to the $$EXIT.BAT file.  These
  693.          parameters are:
  694.  
  695.                   %1        Name of the QWK-ID for the system
  696.                   %2        Path to the work subdirectory
  697.                   %3        Path to the replies subdirectory
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.                                        8
  712.  
  713.  
  714.  
  715.  
  716.          $$SPELL.BAT
  717.          -----------
  718.  
  719.          If this batch file exists then 1stReader will ask you if you
  720.          wish to perform a spelling check on your reply just before
  721.          you save the message.  The batch file uses the '%1' parameter
  722.          to store the filename being passed to the batch file.  This
  723.          is a great way to interface spelling checkers like SHARESPELL
  724.          with 1stReader.  Example (assumes ShareSpell is in the
  725.          \SSPELL subdirectory):
  726.  
  727.                                   @ECHO OFF
  728.                                   CD \SSPELL
  729.                                   SS %1
  730.  
  731.  
  732.          $$CNAMES.BAT
  733.          ------------
  734.  
  735.          This batch file works when a user clicks on the "Conf List"
  736.          button in the 'Join a conference' screen.  The idea behind
  737.          this batch is to allow 1stReader to shell to a program that
  738.          the user can query for conference information.  Some systems
  739.          have over 5,000 conferences so a database isn't such a bad
  740.          idea!
  741.  
  742.  
  743.          $$Fxx.BAT
  744.          ---------
  745.  
  746.          These batch files (where 'xx' is a value from 1 to 10)
  747.          correspond to the function keys on your keyboard.  If you
  748.          press the [SHIFT]+F10 key, for example, then 1stReader will
  749.          execute $$F10.BAT (if found).  This feature lets you
  750.          interface programs that you wish to have executed from one
  751.          keystroke rather than inserting them into the [F7] command
  752.          files (described below).
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.                                        9
  770.  
  771.  
  772.  
  773.  
  774.          .CMD files
  775.          ----------
  776.  
  777.          .CMD (Command) files let you integrate other programs into
  778.          1stReader.  .CMD files are text files that contain program
  779.          descriptions and program commands.  You can call up the .CMD
  780.          file(s) by pressing the [F7] key on your keyboard.
  781.  
  782.          The format of the .CMD file is:
  783.  
  784.                            TITLE=<title description>
  785.                            Description #1,DOS command #1
  786.                            Description #2,DOS command #2
  787.                            Description #3,DOS command #3
  788.  
  789.          You may have up to 100 commands per file.  You can also
  790.          "chain" .CMD files by using the syntax:
  791.  
  792.                            Description #xx,FILE=<filespec>.CMD
  793.  
  794.          To create a .CMD file press ALT+F7.  This will place you in
  795.          the editor where you can create the file.
  796.  
  797.  
  798.          $$1ST.CMD
  799.          ---------
  800.  
  801.          Usually, you will be interested in $$1ST.CMD.  If this file
  802.          exists then 1stReader will load the file and display the menu
  803.          of functions in the middle of your screen.  You can then
  804.          select which program you wish to execute and 1stReader will
  805.          SHELL and execute the DOS command.
  806.  
  807.  
  808.          $$ppff.CMD
  809.          ----------
  810.  
  811.          Almost all of the keyboard input fields are identified in
  812.          1stReader by page and field number.  If $$ppff.CMD exists
  813.          (where "pp" is the page number and "ff" is the field number)
  814.          then 1stReader will display THIS file instead of $$1ST.CMD,
  815.          if $$ppff.CMD exists.
  816.  
  817.          You can create custom .CMD files for specific keyboard input
  818.          fields by pressing the ALT+F7 key at anytime.
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.                                       10
  828.  
  829.  
  830.  
  831.  
  832.          Multiple EDITORS and LIST programs
  833.          ----------------------------------
  834.  
  835.          If you wish to use external editors or list programs you can
  836.          create EDITORS.CMD and LIST.CMD files that contain the
  837.          descriptions and commands needed to execute them.  For
  838.          example, EDITORS.CMD might contain:
  839.  
  840.                             Title=External Editors
  841.                             QEdit,Q %1 %2
  842.                             TED,TED %1
  843.                             DOS 5.00 Editor,EDIT %1
  844.  
  845.          Instead of entering the DOS command for an editor you would
  846.          use the entry "EDITORS.CMD" instead.  Then, when you are
  847.          about to SHELL to DOS to execute the external editor
  848.          1stReader will ask you to select an editor from this list.
  849.          '%1' gets translated into the "ORIGINAL" filespec and '%2'
  850.          gets translated into the "REPLY" filespec.
  851.  
  852.          The same technique works for LIST.CMD except that you would
  853.          only use '%1' to be replaced by the name of the file to list.
  854.  
  855.          1stReader supports up to 100 external editors and file
  856.          listers using this technique.  You can create these files by
  857.          going into Setup's "EDITOR" section then entering LIST.CMD
  858.          and/or EDITORS.CMD in the appropriate entry field.  Then,
  859.          press ALT+F7 to create the file.
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.                                        11
  886.  
  887.  
  888.  
  889.  
  890.          SHELL modifiers
  891.          ---------------
  892.  
  893.          1stReader lets you control HOW it shells to a program using
  894.          "shell modifiers".  These switches let you control whether
  895.          the current screen is saved or cleared before you shell to
  896.          DOS, if you wish to PAUSE before returning back to 1stReader,
  897.          etc.
  898.  
  899.  
  900.          /API: <filespec>
  901.          ----------------
  902.  
  903.          The /API modifier tells 1stReader to create a file named
  904.          <filespec> that contains the entire 1stReader API
  905.          (Applications Program Interface).
  906.  
  907.          This feature lets third-party programmers read the current
  908.          environment used by 1stReader so they may take advantage of
  909.          them for their own programs.
  910.  
  911.          The format of <filespec> is:
  912.  
  913.                             API integer entry #0
  914.                             API integer entry #1
  915.                             ....
  916.                             API integer entry #139
  917.                             API integer entry #140
  918.                             API long integer entry #0
  919.                             API long integer entry #1
  920.                             ...
  921.                             API long integer entry #9
  922.                             API long integer entry #10
  923.                             API string entry #0
  924.                             API string entry #1
  925.                             ...
  926.                             API string entry #99
  927.                             API string entry #100
  928.  
  929.          The actual definitions for the API entries is detailed in the
  930.          API definitions later in this guide.  <filespec> is deleted
  931.          by 1stReader when you return from the DOS SHELL.
  932.  
  933.  
  934.          /CLS and /NOCLS
  935.          ---------------
  936.  
  937.          The /CLS modifier tells 1stReader to erase the screen and
  938.          display the DOS command before execution.  /NOCLS tells
  939.          1stReader to leave the current screen intact and shell to the
  940.          program, providing a "seamless" screen.  When the application
  941.          returns control back to 1stReader the current screen is
  942.          always redisplayed.
  943.                                        12
  944.  
  945.  
  946.  
  947.  
  948.          /EXPORT: <filespec>
  949.          -------------------
  950.  
  951.          This modifier lets you export the current message into
  952.          <filespec> so you can shell to another program that reads
  953.          <filespec> for input.  This is a powerful feature that lets
  954.          third-party software link into 1stReader and offer you
  955.          capabilities above those found in the reader.
  956.  
  957.          The format of the exported message file is:
  958.  
  959.                      1stReader release number
  960.                      Name of the bulletin board
  961.                      Location
  962.                      Telephone number
  963.                      Sysop's name
  964.                      Qmail Door serial number
  965.                      PCBoard message status (225=Active, 226=Deleted)
  966.                      Conference number
  967.                      Message number
  968.                      Message status flag
  969.                      Date
  970.                      Time
  971.                      To
  972.                      From
  973.                      Subject
  974.                      Reference number
  975.                      Number of lines in text body
  976.                      ...Message text...
  977.  
  978.          <filespec> is automatically deleted by 1stReader when you
  979.          return from the DOS SHELL.
  980.  
  981.  
  982.          /IN: <filespec1>  /OUT: <filespec2>
  983.          -----------------------------------
  984.  
  985.          These two modifiers work together...there is no point in
  986.          using /IN without also using /OUT.  They provide you with a
  987.          "flexible" API setup for third-party programmers.
  988.  
  989.          This concept takes a bit of explaining.  Remember the /API
  990.          modifier described earlier?  That modifier creates a file of
  991.          every entry contained in the 1stReader API.  As a third-party
  992.          programmer, you might only be interested in using a couple of
  993.          the entries, but maybe not every single one.
  994.  
  995.          1stReader uses <filespec1> as a "template" in order to create
  996.          <filespec2>.  The template can contain any information your
  997.          application requires in any order you wish.  @variables
  998.          defined in <filespec1> are translated and written out to
  999.          <filespec2>.
  1000.  
  1001.                                        13
  1002.  
  1003.  
  1004.  
  1005.  
  1006.          For example:
  1007.  
  1008.          <filespec1>                        <filespec2>
  1009.          -----------------------            -------------------------
  1010.          My App 1.01                        My App 1.01
  1011.          @API$(0)                           C:\1ST\1ST.SET
  1012.          @API$(5)                           C:\1ST\
  1013.          @API$(36),@DAY@                    MARK HERRING,Wed
  1014.  
  1015.  
  1016.          As you can see, 1stReader "reads" <filespec1> and translates
  1017.          it into <filespec2>.  Any "literals" that 1stReader cannot
  1018.          translate get passed "as is".  <filespec1> is never deleted
  1019.          by 1stReader.  <filespec2> is erased after returning from the
  1020.          DOS SHELL.
  1021.  
  1022.          This feature works well when you wish to write other
  1023.          applications that tie seamlessly into 1stReader.
  1024.  
  1025.  
  1026.  
  1027.          /NS and /SS
  1028.          -----------
  1029.  
  1030.          The /NS (No Supershell) modifier tells 1stReader that if
  1031.          SuperShell has been turned ON by the user then it should not
  1032.          invoke a SuperShell during this command.
  1033.  
  1034.          /SS (SuperShell) works in the opposite.  It tells 1stReader
  1035.          to invoke SuperShell even if the user has not turned
  1036.          SuperShell on.
  1037.  
  1038.  
  1039.          /PAUSE
  1040.          ------
  1041.  
  1042.          This modifier tells 1stReader to pause and wait for a
  1043.          keystroke before returning control back to the user.
  1044.  
  1045.  
  1046.  
  1047.          KEYBOARD.$$$
  1048.          ------------
  1049.  
  1050.          This isn't a DOS command modifier but rather a file that can
  1051.          contain information to be passed back to 1stReader.  If you
  1052.          shell to DOS from a keyboard input field, and the application
  1053.          you execute creates a KEYBOARD.$$$ file in the current
  1054.          subdirectory, this file is read by 1stReader and its contents
  1055.          entered into the current keyboard entry field.  This is an
  1056.          excellent way for third-party applications (like
  1057.          address books) to pass information back to 1stReader.
  1058.  
  1059.                                        14
  1060.  
  1061.  
  1062.  
  1063.  
  1064.          MESSAGE.$$$
  1065.          -----------
  1066.  
  1067.          This too isn't a DOS command modifier.  Instead, it is a file
  1068.          that contains a full message that is to be saved by 1stReader
  1069.          into the reply mail packet.
  1070.  
  1071.          The idea behind supporting this file is to allow other
  1072.          programs that might be shelled to from 1stReader to save
  1073.          messages automatically, without having to go through the same
  1074.          steps 1stReader performs to save the message.
  1075.  
  1076.          Here is the format used for MESSAGE.$$$:
  1077.  
  1078.          Line 1:        Conference number to save message
  1079.          Line 2:        If a public message this line is blank,
  1080.                          otherwise the message is a personal msg.
  1081.          Line 3:        Message TO field (address to whom)
  1082.          Line 4:        Message SUBJECT field
  1083.          Line 5:        Tagline to pass to 1stReader
  1084.  
  1085.          Message text follows on line #6 and below.
  1086.  
  1087.          1stReader always checks for MESSAGE.$$$ after a DOS shell and
  1088.          deletes the file after saving the message.
  1089.  
  1090.  
  1091.          <confname>.TMP files
  1092.          --------------------
  1093.  
  1094.          The template files let you create 'forms' that are
  1095.          automatically inserted into the editor when a user ENTERS a
  1096.          new message.  The form can be a standard bug report form or
  1097.          any form you wish.  The idea behind this feature is to give
  1098.          the user an idea of what they should enter in a new message.
  1099.  
  1100.          1stReader looks for <confname>.TMP using the current
  1101.          conference's name (up to the first eight characters).  For
  1102.          example, if the user was in the 'TEST' conference and entered
  1103.          a new message, 1stReader would look for TEST.TMP and if found
  1104.          it would load it into the editor.  If TEST.TMP is not found
  1105.          then 1stReader looks for $$1ST.TMP instead.
  1106.  
  1107.          If the internal editor is used 1stReader also toggles the
  1108.          editor into an 'overstrike' mode.
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.                                        15
  1118.  
  1119.  
  1120.  
  1121.  
  1122.          .LST (Picklist) files
  1123.          ---------------------
  1124.  
  1125.          .LST files let you display items from a "picklist" and enter
  1126.          them into 1stReader's keyboard entry field.  You can create
  1127.          these picklists at anytime by pressing the ALT+F8 key on your
  1128.          keyboard.  You can display the picklist selections by
  1129.          pressing the [F8] key while in the keyboard entry field.
  1130.  
  1131.          Format of a .LST file is:
  1132.  
  1133.                               TITLE=<description>
  1134.                               Pick entry #1
  1135.                               Pick entry #2
  1136.                               ...
  1137.  
  1138.          Each picklist can contain up to 100 entries per file.  You
  1139.          will know that a picklist is available because 1stReader
  1140.          displays "[F8]=Picklist" on your screen.
  1141.  
  1142.          You can load multiple picklists from one picklist if you make
  1143.          an entry "FILE=<filespec>".  Select this entry and the new
  1144.          picklist will load.
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.                                        16
  1176.  
  1177.  
  1178.  
  1179.  
  1180.          .DOS files
  1181.          ----------
  1182.  
  1183.          The DOS command modifiers described earlier make it very easy
  1184.          to control how programs listed in .CMD files work.  All you
  1185.          need to do is add them to the DOS command line entries in
  1186.          the .CMD files.
  1187.  
  1188.          However, what if you would like to use these modifiers with
  1189.          batch files?  Or DOS programs you might execute from within
  1190.          the file manager?  Obviously, you can't add these modifiers
  1191.          on the command line.
  1192.  
  1193.          This is where .DOS files come into play.  These files let you
  1194.          customize a DOS command line that is passed to the 1stReader
  1195.          DOS shell routine so any program can take advantage of them.
  1196.  
  1197.          .DOS files rely upon the name of the program or batch file
  1198.          that is being executed in order to locate them.  This means
  1199.          that if you are about to execute JH3.EXE then 1stReader will
  1200.          look for a file named JH3.DOS.  The reader looks first in the
  1201.          current subdirectory, then in the BBS subdirectory and
  1202.          finally the SYSTEM subdirectory to find a match.
  1203.  
  1204.          The file JH3.DOS can contain any DOS modifiers or any
  1205.          @variables (described later in this guide).  1stReader will
  1206.          read the first line from the JH3.DOS file and append it to
  1207.          the JH3.EXE command line.  If JH3.DOS contains:
  1208.  
  1209.                                    "/NOCLS"
  1210.  
  1211.          then when JH3.EXE is executed the screen would not be erased.
  1212.  
  1213.          Remember, ALL batch files and programs executed in a DOS
  1214.          shell from 1stReader support .DOS files.
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.                                        17
  1234.  
  1235.  
  1236.  
  1237.  
  1238.          The 1stReader Applications Program Interface (API)
  1239.          --------------------------------------------------
  1240.  
  1241.          The 1stReader API is designed to let third-party programmers
  1242.          have access to the internal information used by 1stReader.
  1243.          It is a "read-only" interface.  At this time there is no
  1244.          provision to allow another program to change the data in the
  1245.          API.
  1246.  
  1247.          Power users will also find the API of interest.  That's
  1248.          because we have provided you with special functions that let
  1249.          you access the API.  These functions are:
  1250.  
  1251.               @API(xx)       Accesses the integer API entries.
  1252.                              "xx" can be between 0 and 140.
  1253.  
  1254.               @API&(xx)      Accesses the long integer API entries.
  1255.                              "xx" can be between 0 and 10.
  1256.  
  1257.               @API$(xx)      Accesses the API text entries.
  1258.                              "xx" can be between 0 and 100.
  1259.  
  1260.          The actual API values are listed below.  One important thing
  1261.          to remember is that 1stReader supports these (and ALL)
  1262.          @variable definitions in filespecs, text entries and
  1263.          descriptions.  They come in VERY handy with the .CMD, .LST
  1264.          and .DOS files.
  1265.  
  1266.          Here is a list of the 1stReader API entries.  If you have
  1267.          specific questions about any of these entries please leave us
  1268.          a message on our customer support system at (615) 230-8822.
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.          1stReader Integer API table
  1275.          ------------------------------------------------------------
  1276.            1:    Text file (1STTEXT) file handle
  1277.            2:    Segment address of 1STTEXT (if loaded)
  1278.            3:    SCREENS file handle
  1279.            4:    Length of the DialDir entry
  1280.            5:    SYSTEMS file handle
  1281.            6:    Number of screens on file
  1282.            7:    Screen buffer segment address
  1283.            8:    Current screen number
  1284.            9:    Reader screen buffer
  1285.           10:    Does a mouse exist?
  1286.           11:    Mouse cursor state
  1287.           12:    Are we in ScrnEdit?
  1288.  
  1289.  
  1290.  
  1291.                                        18
  1292.  
  1293.  
  1294.  
  1295.  
  1296.           13:    Last keyboard field entered
  1297.           14:    The user cannot access help from this location
  1298.           15:    Total number of systems on file
  1299.           16:    Current system record number
  1300.           17:    Are we inside QmSetup?
  1301.           18:    Are we inside ShowFile?
  1302.           19:    Qmail Door serial number
  1303.           20:    Is the user a sysop?
  1304.           21:    Maximum number of lines per message
  1305.           22:    Number of conferences on file
  1306.           23:    Number of login names
  1307.           24:    Number of active conferences
  1308.           25:    File handle for MESSAGES.DAT
  1309.           26:    Current conference number
  1310.           27:    Current MIDI velocity value
  1311.           28:    Is music enabled for this display?
  1312.           29:    Is this display an ANSI ART display?
  1313.           30:    Last conference joined
  1314.           31:    Number of messages in conference
  1315.           32:    Current message number in conference
  1316.           33:    Number of lines in current message
  1317.           34:    Is this message an ANSI message?
  1318.           35:    Last message number loaded
  1319.           36:    Current line number in message
  1320.           37:    File handle for the replies file
  1321.           38:    A DosService call was made
  1322.           39:    Normal message text color
  1323.           40:    Quoted message text color
  1324.           41:    Search message text color
  1325.           42:    Current message file buffer
  1326.           43:    Was a bookmark read?
  1327.           44:    Is this message addressed to you?
  1328.           45:    Message type
  1329.           46:    Is the message read (1=Yes, 0=No)
  1330.           47:    Number of mouse traps in effect
  1331.           48:    Number of files downloaded in TERMINAL mode
  1332.           49:    Are we in batch mode using /CALL?
  1333.           50:    File handle for zippy file search
  1334.           51:    Are we in color mode?
  1335.           52:    How many active keywords are there in the scan?
  1336.           53:    Is this message a USENET message?
  1337.           54:    Was F10 pressed?   (The action key)
  1338.           55:    Number of names in TWIT file
  1339.           56:    Reload the TWIT file?
  1340.           57:    Last conference joined since Zippy
  1341.           58:    File handle for folders
  1342.           59:    Are we in the initial IPL for the reader?
  1343.           60:    Stacked OPTION command (used when CTRL is pressed)
  1344.           61:    Are we currently inside QmListFile?
  1345.           62:    Was a packet found on startup in the work area
  1346.           63:    Highest conference number
  1347.  
  1348.  
  1349.                                        19
  1350.  
  1351.  
  1352.  
  1353.  
  1354.           64:    Last message line displayed at top in internal quoter
  1355.           65:    Number of messages tagged for archiving
  1356.           66:    If set then the message is not redisplayed
  1357.           67:    Number of files found in the mail packet
  1358.           68:    Direction of the QmScrnEdit field movement
  1359.           69:    File number for services.dat
  1360.           70:    Number of services on file
  1361.           71:    File handle number for the .QWK packet
  1362.           72:    Number of new bulletins found
  1363.           73:    Packet number selected
  1364.           74:    Set for QmListConf
  1365.           75:    Display this message in ANSI
  1366.           76:    Button pressed in MouseRange()
  1367.           77:    Mouse button selected in MouseRange()
  1368.           78:    Number of messages in this packet
  1369.           79:    Have we initialized the modem?
  1370.           80:    Force carrier on modem?
  1371.           81:    The comm ABORT switch
  1372.           82:    Recycle to next call in queue
  1373.           83:    Echo received characters from comm port on screen?
  1374.           84:    Number of LOOK variables defined
  1375.           85:    Timeout value for comm routines
  1376.           86:    Are autoZmodem downloads enabled?
  1377.           87:    Are we in terminal mode?
  1378.           88:    Reload the current message?
  1379.           89:    Are we in the terminal program
  1380.           90:    Buffer position for comm routines
  1381.           91:    Was JH called?
  1382.           92:    IRQ number
  1383.           93:    Base address
  1384.           94:    Reading without a packet on file?
  1385.           95:    Flow control parameter
  1386.           96:    Is the comm port open?
  1387.           97:    FIFO buffer size
  1388.           98:    Are we now reading a packet?
  1389.           99:    Are we inside a script?
  1390.          100:    Is this message routed from PCRelay?
  1391.          101:    Is this message routed from Usenet?
  1392.          102:    Is AutoExit in terminal enabled?
  1393.          103:    Are we inside the DOS SHELL (F6) handler?
  1394.          104:    Was /QWK: used?
  1395.          105:    Was /REP: used?
  1396.          106:    Are we inside the function menu routine?
  1397.          107:    Maximum number of messages per conference
  1398.          108:    Use "UN:" on this message?
  1399.          109:    Was this mail packet mangled by EZ-Reader?
  1400.          110:    Mixed case entry flag
  1401.          111:    Fido style taglines flag
  1402.          112:    Have mail headers been swapped out?
  1403.          113:    Current field number in screen
  1404.          114:    Are we inside the editor subroutine?
  1405.  
  1406.  
  1407.                                        20
  1408.  
  1409.  
  1410.  
  1411.  
  1412.          115:    CONTROLTYPE = ADD found in DOOR.ID
  1413.          116:    Should ADD/DROP buttons be displayed?
  1414.          117:    Are we inside the DOOR setup routine?
  1415.          118:    Strip @X codes?
  1416.          119:    International date format (0=USA, 1=EUROPE, 2=JAPAN)
  1417.          120:    Is a message loaded?
  1418.          121:    Are we inside the QmListConfs routine?
  1419.          122:    Is Doorway mode turned on?
  1420.          123:    Was doorway mode turned on while executing a script?
  1421.          124:    Maximum number of lines in a reply
  1422.          125:    Were services included in this packet?
  1423.          126:    Was KEYBOARD.$$$ read?
  1424.          127:    HELP.DAT handle
  1425.          128:    Help record file
  1426.          129:    If set then use 4DOS BTM files
  1427.          130:    Maximum possible number of messages allowed
  1428.          131:    Was HELP just called?
  1429.          132:    Last archive packet used
  1430.          133:    Number of Replace$() variables defined
  1431.          134:    Archiver used to unpack mail packet
  1432.          135:    Are we ordering 1stReader?
  1433.          136:    Was the last unpack operation successful?
  1434.          137:    Stop the pause in QmFileDisplay?
  1435.          138:    Size of 16550 FIFO stack (modified by 1st)
  1436.          139:    Are we inside help?
  1437.          140:    Is user a Qmail Door owner?
  1438.          141:    Are we inside the internal editor?
  1439.          142:    Number of times TIMEOUT was hit in script
  1440.          143:    Number of times for TIMEOUT to hit before ABORTing
  1441.          144:    Capture buffer file number
  1442.          145:    Reload the message display screen?
  1443.          146:
  1444.          147:
  1445.          148:    Is this a Blue Wave packet?
  1446.          149:    Is the user "NEW USER"?
  1447.          150:    BBS system type
  1448.          151:    Low mark string space
  1449.          152:    High mark stack space
  1450.  
  1451.  
  1452.          1stReader Long Integer API Table
  1453.          ------------------------------------------------------------
  1454.            0:    1stReader Serial number
  1455.            1:    Total number of records in MESSAGES.DAT
  1456.            2:    Total number of records in REPLY file
  1457.            3:    Beginning position of the bookmark inside the .QWK
  1458.            4:    Current baud rate
  1459.            5:    Last time a character was received in comm channel
  1460.            6:    Current message record number in MESSAGES.DAT
  1461.  
  1462.  
  1463.  
  1464.  
  1465.                                        21
  1466.  
  1467.  
  1468.  
  1469.  
  1470.          1stReader Text API Table
  1471.  
  1472.          ------------------------------------------------------------
  1473.            0:    Name of the .CFG file
  1474.            1:    Path to the packets subdirectory
  1475.            2:    Path to the download files subdirectory
  1476.            3:    Path to the programs files subdirectory
  1477.            4:    Path to the opening subdirectory
  1478.            5:    Path to the system subdirectory
  1479.            6:    Path to the reply packets subdirectory
  1480.            7:    Mail packet extension (Q*)
  1481.            8:    Reply packet extension (REP)
  1482.            9:    Mail packet filespec (No path)
  1483.           10:    Name of PACKET ID
  1484.           11:    Name of BBS
  1485.           12:    Mail packet name
  1486.           13:    Reply packet name
  1487.           14:    Path to BBS subdirectory
  1488.           15:    Path to the work subdirectory
  1489.           16:    Path to the replies subdirectory
  1490.           17:    Path to the services subdirectory
  1491.           18:    Path to the folders subdirectory
  1492.           19:    Last import file subdirectory
  1493.           20:    TWIT list filespec
  1494.           21:    Last folder filespec (no .FOL extension)
  1495.           22:    Current conference name
  1496.           23:    Name of the SERVICES.LST file
  1497.           24:    Last conference name
  1498.           25:    Release date
  1499.           26:    Suffix of the ID keyfile
  1500.           27:    Path to the .SET file
  1501.           28:    Path to the startup subdirectory
  1502.           29:    Path to the SCRIPT files subdirectory
  1503.           30:    Name of system
  1504.           31:    Telephone number
  1505.           32:    Sysop's name
  1506.           33:    Door ID
  1507.           34:    Date of packet
  1508.           35:    Time of packet
  1509.           36:    User's name
  1510.           37:    Second scan name
  1511.           38:    Third scan name
  1512.           39:
  1513.           40:    Welcome filespec
  1514.           41:    BBS news filespec
  1515.           42:    Goodbye filespec
  1516.           43:    Quote name
  1517.           44:    Name of the bookmark file
  1518.           45:    CTRL sequences for OPTIONS
  1519.           46:    ALT translation string
  1520.  
  1521.  
  1522.  
  1523.                                        22
  1524.  
  1525.  
  1526.  
  1527.  
  1528.           47:
  1529.           48:
  1530.           49:    Quote character entry from setup
  1531.           50:    Full path to MESSAGES.DAT
  1532.           51:    Full path to the REPLY .MSG file
  1533.           52:    Scan entry #1
  1534.           53:    Scan entry #2
  1535.           54:    Scan entry #3
  1536.           55:    Scan entry #4
  1537.           56:    PCRelay routing site
  1538.           57:    Last directory viewed in reader menu
  1539.           58:    Path to the subdirectory being viewed in file manager
  1540.           59:    Filespec currently selected in the program manager
  1541.           60:    Usenet Path
  1542.           61:    From
  1543.           62:    Newsgroups
  1544.           63:    Subject
  1545.           64:    Message ID
  1546.           65:    Date
  1547.           66:    References
  1548.           67:    Sender
  1549.           68:    Organization
  1550.           69:    Domain
  1551.           70:    Reply-To
  1552.           71:    Bookmarker
  1553.           72:    Last color change issued by ANSI
  1554.           73:    Name of the USENET.ID file
  1555.           74:    User name in upper/lower case
  1556.           75:    User name in Usenet format
  1557.           76:    Comm port base address in HEX
  1558.           77:    String passed to program from DOS shell
  1559.           78:    String value present when QmEditor executed
  1560.           79:    Control name for door ADD/DROP
  1561.           80:    Name of the service file (no path or extension)
  1562.           81:    Last DOS command selected in QmMenu
  1563.           82:    Conference name (dots removed)
  1564.           83:    Current contents of the keyboard input buffer
  1565.           84:    Current conference name
  1566.           85:    Message number
  1567.           86:    Date
  1568.           87:    Time
  1569.           88:    Status
  1570.           89:    To
  1571.           90:    From
  1572.           91:    Subject
  1573.           92:    Refer
  1574.           93:    Reader
  1575.           94:    Serial number
  1576.           95:    Tagline
  1577.           96:    Actual PCB message header
  1578.           97:    Last color saved by @X00
  1579.           98:    Last highlight ANSI switch used
  1580.           99:    Fido Address (if any)
  1581.          100:    Current conference number
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.          Online help reference
  1588.          ---------------------
  1589.  
  1590.          This is a list of the online help references used throughout
  1591.          1stReader.
  1592.  
  1593.          100:     Opening screen help file
  1594.          101:     Help with the .CMD menu files
  1595.          102:     Setup screen help file
  1596.          103:     Switches help screen
  1597.          104:     Modem and Communications help screen
  1598.          105:     Taglines entry help screen
  1599.          106:     Paths and editors help screen
  1600.          107:     Colors help screen
  1601.          108:     Changes in setup - confirm saving
  1602.          109:     Changes in setup - enter a name for the setup
  1603.          110:     Manage files - asks for directory path
  1604.          111:     Manage files - list of commands
  1605.          112:     Help with LIST
  1606.          113:     Help with the COPY option
  1607.          114:     COPY - File exists!  Copy over it?
  1608.          115:     Help with the internal editor - editing a file
  1609.          116:     Edit a file - save these changes?
  1610.          117:
  1611.          118:     Unpack <FILESPEC>?
  1612.          119:     Unpack file to the default subdirectory
  1613.          120:     Remove a subdirectory
  1614.          121:     Delete a filespec.
  1615.          122:     Help with entering a new system
  1616.          123:     Enter a new system - Save these changes?
  1617.          124:     Enter a new system - Delete this system?
  1618.          125:     Mail packet screen - no packets on file
  1619.          126:     Mail packet screen - packets on file
  1620.          127:     Deleting the BBS - mail packets found
  1621.          128:     Time for calling BBS
  1622.          129:     Read messages main command screen
  1623.          130:     News and bulletins screen
  1624.          131:     Join a conference screen
  1625.          132:     Print a list of conferences from the join screen
  1626.          133:     Add a conference from the join screen
  1627.          134:     Drop a conference from the join screen
  1628.          135:     Reading messages
  1629.          136:     Internal editor - entering a message
  1630.          137:     Save a message screen
  1631.          138:     Throw message away dialog box
  1632.          139:     Folders screen
  1633.          140:     Sort by description - folders
  1634.          141:     Delete a folder - folders
  1635.          142:     Select a tagline for a message
  1636.          143:     Confirm use of a "blue" tagline
  1637.          144:     Message options help
  1638.  
  1639.  
  1640.                                        24
  1641.  
  1642.  
  1643.  
  1644.  
  1645.          145:     Save message to filespec entry
  1646.          146:     Save tagged messages
  1647.          147:     Printer not working - try again?
  1648.          148:     Ignore <USER>
  1649.          149:     Sort order screen
  1650.          150:     Zippy screen
  1651.          151:     List of services screen
  1652.          152:     Delete <service>
  1653.          153:     Qmail Door configurations
  1654.          154:     Add, drop or reset a conference through "DOOR"
  1655.          155:     Help with the OPTIONS or SERVICES command
  1656.          156:     New setup filespec was entered - enter description
  1657.          157:     Do you wish to quit reading this mail packet
  1658.          158:     Delete this mail packet
  1659.          159:     Waiting to call a system screen
  1660.          160:     No services are available - novice screen
  1661.          161:     Configuration changes on file - save them?
  1662.          162:     Add a manually entered tagline when saving message
  1663.          163:     Delete the contents of the <xxxx> subdir (unpack)
  1664.          164:     Displaying a text file
  1665.          165:     1stReader has found a mail packet waiting in WORK
  1666.          166:     Confirmation of the action
  1667.          167:     Do you wish to print this text on the printer?
  1668.          168:     List messages display
  1669.          169:     Beta tester's screen
  1670.          170:     Importing a file into the editor
  1671.          171:     Quoting a message
  1672.          172:     Config - Edit keywords
  1673.          173:     Config - Change "city" field in your PCBoard record
  1674.          174:     Config - Change business/data phone number
  1675.          175:     Config - Change your home/voice phone number
  1676.          176:     Config - Turn the PCBoard EXPERT mode ON or OFF
  1677.          177:     Config - Change your PCBoard file transfer protocol
  1678.          178:     Config - Change your PCBoard user maintained comment
  1679.          179:     Config - Change Qmail Door file transfer protocol
  1680.          180:     Config - Turn the Qmail Door EXPERT mode ON or OFF
  1681.          181:     Config - Maxsize of .QWK packet (in bytes)
  1682.          182:     Config - Change the max number of msgs per conf
  1683.          183:     Setup files display on intro
  1684.          184:     Welcome new user
  1685.          185:     Terminal commands
  1686.          186:     Downloading a file
  1687.          187:     Uploading a file
  1688.          188:     Help with external pack commands
  1689.          189:     Order form
  1690.          190:     Diskette size
  1691.          191:     Telephone
  1692.          192:     Comments on the order
  1693.          193:     DELUXE2.KEY file does not check out
  1694.          194:     Sysop key found - inform user
  1695.          195:     Sysop welcome screen
  1696.  
  1697.  
  1698.                                        25
  1699.  
  1700.  
  1701.  
  1702.  
  1703.          196:     System you are calling does not have login info
  1704.          197:     Demo mode explaination
  1705.          198:     New user login
  1706.          199:     Transmit replies only?
  1707.          200:     Qmail DeLuxe² owner discount
  1708.  
  1709.          @variables supported by 1stReader
  1710.          ---------------------------------
  1711.  
  1712.          This is a list of all @variables supported by 1stReader.  You
  1713.          may use these variables in any file, script, .CMD, .LST or
  1714.          .DOS file.
  1715.  
  1716.          Variable                 Description
  1717.          -------------------      ---------------------------------
  1718.          @CLREOL@                 Clears display to the end of line
  1719.          @DATE@                   Current system date
  1720.          @SYSDATE@                Current system date
  1721.          @TIME@                   Current system time
  1722.          @SYSTIME@                Current system time
  1723.          @TO@                     Message "TO" field
  1724.          @FROM@                   Message "FROM" field
  1725.          @SUBJECT@                Message "SUBJECT" field
  1726.          @GOODNAME@               Your name in upper/lower case
  1727.          @USENETNAME@             Your name in Usenet "." format
  1728.          @EDIT@                   DOS editor command
  1729.          @LIST@                   DOS list command
  1730.          @ORIGINAL@               Original message filespec
  1731.          @REPLY@                  Reply message filespec
  1732.          @BBSID@                  Qmail Door packet ID
  1733.          @MEMORY@                 Free memory available in 1st
  1734.          @VERSION@                1stReader release edition
  1735.          @PHONE@                  Telephone of the BBS
  1736.          @CONF@                   Current conference name
  1737.          @CONF2@                  Current conference (underscored)
  1738.  
  1739.          @API$(xxx)               This variable reads the 1stReader
  1740.                                   API string table and is replaced
  1741.                                   with the current value.
  1742.  
  1743.          @API(xxx)                This variable reads the 1stReader
  1744.                                   API integer table and is
  1745.                                   replaced with the current value.
  1746.  
  1747.          @API&(xxx)               This variable reads the 1stReader
  1748.                                   API long integer table and is
  1749.                                   replaced with the current value.
  1750.  
  1751.          @SWITCH(xx)              This variable reads the 1stReader
  1752.                                   switches table.  If the switch is
  1753.                                   turned ON then a "-1" is returned.
  1754.                                   Otherwise, a "0" is returned.  See
  1755.                                   the "SWITCH" script function for a
  1756.                                   complete list of switch numbers.
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.          These @variables are available if you are reading a message
  1763.          from a 'Usenet' conference:
  1764.  
  1765.          @U-PATH@                 'Path' line in message
  1766.          @U-FROM@                 'From' line in message
  1767.          @U-NEWSGROUPS@           'Newsgroups' line in message
  1768.          @U-SUBJECT@              'Subject' line in message
  1769.          @U-MESSAGE-ID@           'Message-ID' line in message
  1770.          @U-DATE@                 'Date' line in message
  1771.          @U-REFERENCES@           'References' line in message
  1772.          @U-SENDER@               'Sender' line in message
  1773.          @U-ORGANIZATION@         'Organization' line in message
  1774.          @U-DOMAIN@               'Domain' line in message
  1775.          @U-REPLY-TO@             'Reply-To' line in message
  1776.  
  1777.          1stReader will also substitute any DOS environment variables
  1778.          by enclosing them in "%" characters.  For example, %PATH%
  1779.          would be replaced with the DOS path from your environment.
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791.  
  1792.  
  1793.  
  1794.  
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.                                        27
  1816.  
  1817.  
  1818.  
  1819.  
  1820.          1stReader script language
  1821.          -------------------------
  1822.  
  1823.          Commands are in FULL CAPITAL letters.  Required values are
  1824.          enclosed in <arrows> and optional values are enclosed in
  1825.          [brackets].  Of course, do not include these characters in
  1826.          the actual command.
  1827.  
  1828.          Sometimes command parameters will be enclosed by quotation
  1829.          marks.  If present in the command description then these
  1830.          quotation marks are required in the actual command line.
  1831.  
  1832.  
  1833.          ABORT <value>                                 Type: command
  1834.  
  1835.          The ABORT command works with the TIMEOUT command to determine
  1836.          how many carriage returns must be sent (without a response
  1837.          back from the BBS) before 1stReader declares the script to be
  1838.          'locked'.  If the number of carriage returns transmitted
  1839.          exceed <value> then the script is aborted by 1stReader.
  1840.  
  1841.  
  1842.  
  1843.          API <value>                                   Type: function
  1844.  
  1845.          The API function reads the integer API table for entry
  1846.          <value>.  Some API values are flags that can be tested for ON
  1847.          or OFF conditions.  This function lets you conduct those
  1848.          tests.
  1849.  
  1850.  
  1851.          AUTOEXIT <on|off>                             Type: command
  1852.  
  1853.          The AUTOEXIT command controls how 1stReader will exit out of
  1854.          the TERMINAL mode.  If AUTOEXIT ON is set then if carrier is
  1855.          lost while the user is in terminal mode, 1stReader will exit
  1856.          the script.  AUTOEXIT OFF causes 1stReader to stay in the
  1857.          terminal mode until the user presses ALT+X to exit.
  1858.  
  1859.  
  1860.          CAPTURE <on|off>                              Type: command
  1861.  
  1862.          The CAPTURE command will open a file named <BBSID>.CAP in the
  1863.          1stReader system subdirectory.  This file will capture the
  1864.          screens displayed by 1stReader so you can review it later.
  1865.          If the capture file is left open when a script terminates
  1866.          then 1stReader will close the capture file automatically.
  1867.  
  1868.  
  1869.  
  1870.  
  1871.  
  1872.  
  1873.                                        28
  1874.  
  1875.  
  1876.  
  1877.  
  1878.          CLS                                           Type: command
  1879.  
  1880.          The CLS command will clear the screen and set the cursor to
  1881.          the top of the screen.
  1882.  
  1883.  
  1884.          COMMENT "string"                              Type: command
  1885.  
  1886.          This command lets you display a comment on the screen in the
  1887.          area setup below the LOCKLINE value.
  1888.  
  1889.  
  1890.          COUNT <qwk|rep>                               Type: command
  1891.  
  1892.          The COUNT command increments the number of QWK mail packets
  1893.          received and the number of REP mail packets uploaded to the
  1894.          bulletin board system.
  1895.  
  1896.  
  1897.          DEBUG                                         Type: function
  1898.  
  1899.          The DEBUG function lets you test to see if DEBUG (switch #18)
  1900.          has been turned on by the user.  You could use the SWITCH
  1901.          function to test for this condition but the DEBUG function
  1902.          provides better script readability.
  1903.          DOWNLOAD <filespec>                           Type: command
  1904.  
  1905.          The DOWNLOAD command will download <filespec> using the
  1906.          Zmodem file transfer protocol.
  1907.  
  1908.  
  1909.          EDIT <filespec>                               Type: command
  1910.  
  1911.          The EDIT command lets you edit <filespec> from inside a
  1912.          script.  If <filespec> does not exist it will be created for
  1913.          you.
  1914.  
  1915.  
  1916.          EXIT                                          Type: command
  1917.  
  1918.          The EXIT command will immediately disconnect the BBS and exit
  1919.          the script.  You should use it if you wish to exit a script
  1920.          without waiting for the BBS to disconnect from you.
  1921.  
  1922.  
  1923.          FOUND=<value>                                 Type: function
  1924.  
  1925.          The FOUND function returns which prompt string was found
  1926.          using a WAITFOR command.  If a WAITFOR command uses multiple
  1927.          target prompts (example: WAITFOR "Yes|No") the FOUND=
  1928.          function will return a value of "1" if "Yes" was found or "2"
  1929.          if "No" was found.
  1930.  
  1931.                                        29
  1932.  
  1933.  
  1934.  
  1935.  
  1936.          GOSUB <label>                                 Type: command
  1937.  
  1938.          The GOSUB command lets you call a subroutine in your script
  1939.          that is located at <label>.
  1940.  
  1941.  
  1942.          GOTO <label>                                  Type: command
  1943.  
  1944.          The GOTO command transfers flow of the script to <label>.  A
  1945.          label always starts with a colon and is one word long on a
  1946.          line by itself.  Up to 100 labels may be defined in a script.
  1947.  
  1948.  
  1949.          HANGUP                                        Type: command
  1950.  
  1951.          The HANGUP command will immediately terminate the connection
  1952.          to the remote BBS.
  1953.  
  1954.  
  1955.          HELP <number>                                 Type: command
  1956.  
  1957.          The HELP command displays the online help available from
  1958.          inside 1stReader's HELP files.  See the list of HELP
  1959.          functions for more information.
  1960.  
  1961.  
  1962.          IF ......                                     Type: statement
  1963.  
  1964.          You may use the IF statement to test for various conditions
  1965.          and execute a command based on the results.  The syntax of
  1966.          the IF statement is:
  1967.  
  1968.                               IF <function> <command>
  1969.  
  1970.          There is no "THEN" in the IF statement - THEN is assumed and
  1971.          is redundant.  You may use any <function> defined in the
  1972.          script language and combine it with any <command> as the
  1973.          object of the IF statement.
  1974.  
  1975.          1stReader also provides for a NOT modifier so you can test if
  1976.          a particular function is not true.  The NOT statement must
  1977.          come before the <function>.  The syntax of the IF statement
  1978.          using a NOT modifier is:
  1979.  
  1980.                             IF NOT <function> <command>
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986.  
  1987.  
  1988.  
  1989.                                        30
  1990.  
  1991.  
  1992.  
  1993.  
  1994.          KEYSTROKE=<value>                             Type: function
  1995.  
  1996.          This function returns the ASCII value of the keystroke given
  1997.          to the last PAUSE command.  If a lower case character was
  1998.          pressed then 1stReader automatically converts it to upper
  1999.          case for you.
  2000.  
  2001.               Examples:
  2002.               PAUSE
  2003.               IF KEYSTROKE=13 ....          ' Enter was pressed
  2004.               IF KEYSTROKE=27 ....          ' ESC key was pressed
  2005.               IF KEYSTROKE=32 ....          ' Space bar pressed
  2006.  
  2007.  
  2008.          KILL <filespec>                               Type: command
  2009.  
  2010.          The KILL command will erase <filespec> from the drive.
  2011.  
  2012.  
  2013.          LIST <filespec>                               Type: command
  2014.  
  2015.          The LIST command will display a text file using the internal
  2016.          file lister.  The difference between the SHOW and LIST
  2017.          commands is that the SHOW command loads the text into memory
  2018.          and displays it using the help screen while LIST will display
  2019.          any size file using the internal list routines.
  2020.  
  2021.          LOCKLINE <row> <attribute>                    Type: command
  2022.  
  2023.          The LOCKLINE command lets you allocate a section of the
  2024.          screen for COMMENTs from the script file.  <row> is the row
  2025.          number on the screen (rows 1 through 24) to "lock" so
  2026.          comments may be printed below it.  In other words, <row> is
  2027.          the last row that information received from the BBS is
  2028.          displayed.  Immediately after <row> a line is drawn by
  2029.          1stReader.  <attribute> is the color attribute value that is
  2030.          used to paint the remaining rows underneath the solid line.
  2031.  
  2032.  
  2033.          LOOKFOR "prompt string" "transmit string"     Type: command
  2034.  
  2035.          The LOOKFOR command is used to scan incoming data for "prompt
  2036.          string" and if found, transmit "transmit string".  If you
  2037.          wish to remove a LOOKFOR command that is already in place use
  2038.          the syntax LOOKFOR "prompt string" "".  The null string in
  2039.          place of the "transmit string" tells 1stReader to remove the
  2040.          LOOKFOR command.  Remember, the "prompt string" must match
  2041.          the original string.  Up to 10 LOOKFORs may be active at any
  2042.          one time.
  2043.  
  2044.  
  2045.  
  2046.  
  2047.                                        31
  2048.  
  2049.  
  2050.  
  2051.  
  2052.          PAUSE [seconds]                               Type: command
  2053.  
  2054.          The PAUSE command will pause execution of the script for
  2055.          [seconds].  If you do not use a [seconds] argument then the
  2056.          script will pause until you press any key.
  2057.  
  2058.  
  2059.          PLAY "string"                                 Type: command
  2060.  
  2061.          This command will play the ANSI music enclosed in "string"
  2062.          through the PC's internal speaker (if the MUSIC switch has
  2063.          been turned ON).
  2064.  
  2065.  
  2066.          REPLIES                                       Type: function
  2067.  
  2068.          The REPLIES function will check to see if a @BBSID@.REP file
  2069.          exists in the packets subdirectory.  Use this function with
  2070.          an IF statement to determine if replies are on file and
  2071.          should be uploaded.
  2072.  
  2073.  
  2074.          RETURN [label]                                Type: command
  2075.  
  2076.          The RETURN command returns execution of the 1stReader script
  2077.          to the next command after the calling GOSUB command.  If you
  2078.          include the optional [label] then execution resumes at the
  2079.          statement following the label.
  2080.  
  2081.  
  2082.          RUN <script filespec> [label]                 Type: command
  2083.  
  2084.          The RUN command lets you load a new script into 1stReader.
  2085.          If you include the optional [label] then execution will begin
  2086.          at the label.
  2087.  
  2088.  
  2089.          SHOW <filespec>                               Type: command
  2090.  
  2091.          The SHOW command will display a short text file on the
  2092.          screen.  The difference between the SHOW and LIST commands is
  2093.          that the SHOW command loads the text into memory and displays
  2094.          it using the help screen while LIST will display any size
  2095.          file using the internal list routines.
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.                                        32
  2106.  
  2107.  
  2108.  
  2109.  
  2110.          SWITCH <value>                                Type: function
  2111.  
  2112.          The SWITCH function lets you query the 1stReader switch
  2113.          settings.  You can then use an IF statement to take action
  2114.          based on the way a particular switch is set.  <value>
  2115.          corresponds to the following table:
  2116.  
  2117.  
  2118.                         Value     Switch description
  2119.                         -----     ------------------
  2120.                           1       Advanced features
  2121.                           2       Use bookmarks
  2122.                           3       External editor
  2123.                           4       Color monitor
  2124.                           5       Sound
  2125.                           6       ANSI emulator
  2126.                           7       ANSI message display
  2127.                           8       Random taglines
  2128.                           9       Music
  2129.                          10       Use mouse
  2130.                          11       Auto position mouse
  2131.                          12       Sort conferences
  2132.                          13       FIDO taglines
  2133.                          14       Hangup using DTR
  2134.                          15       PCRelay routing
  2135.                          16       Load 1STTEXT
  2136.                          17       Top of form on printer
  2137.                          18       Debug scripts
  2138.                          19       Log calls
  2139.                          20       Save new file lists
  2140.                          21       SuperShell to DISK
  2141.                          22       SuperShell to EMS
  2142.                          23       Skip messages you have read
  2143.                          24       Internal packing
  2144.  
  2145.  
  2146.          Remember you may use the IF NOT condition to see if a
  2147.          particular switch has been turned OFF.
  2148.  
  2149.  
  2150.          TERMINAL                                      Type: command
  2151.  
  2152.          The TERMINAL command does not have any arguments.  It will
  2153.          send the user into an immediate terminal mode.  To exit the
  2154.          terminal mode and return to the script press ALT+X.
  2155.  
  2156.  
  2157.          TRANSMIT "string"                             Type: command
  2158.  
  2159.          The TRANSMIT command will transmit "string" to the remote
  2160.          system.
  2161.  
  2162.  
  2163.                                        33
  2164.  
  2165.  
  2166.  
  2167.  
  2168.          TRANSMIT; "string"                            Type: command
  2169.  
  2170.          This command works just like the TRANSMIT command except that
  2171.          any embedded spaces are converted into semi-colons.  For
  2172.          example, TRANSMIT; "Mark Herring" would be converted into
  2173.          "Mark;Herring".  This command can be used to log into systems
  2174.          that require semi-colons for a single-line login.
  2175.  
  2176.  
  2177.          TIMEOUT <seconds>                             Type: command
  2178.  
  2179.          The TIMEOUT command sets the number of seconds that must pass
  2180.          without receiving data from the remote system before the
  2181.          reader will transmit a carriage return.  This command is used
  2182.          to catch situations where you might be sitting at the
  2183.          "Command?" prompt on PCBoard yet the script may not catch it.
  2184.          If you wish to disable the TIMEOUT completely use a value of
  2185.          0 seconds.
  2186.  
  2187.  
  2188.          UPLOAD <filespec>                             Type: command
  2189.  
  2190.          The UPLOAD command will upload <filespec> using the Zmodem
  2191.          file transfer protocol.
  2192.  
  2193.  
  2194.          WAITFOR "prompt string" [seconds]             Type: command
  2195.  
  2196.          The WAITFOR command scans incoming text for "prompt string".
  2197.          When "prompt string" has been found execution of the script
  2198.          continues.  [seconds] is an optional value that can be added
  2199.          to the command so that WAITFOR only waits for [seconds] for
  2200.          "prompt string" to be found.  If [seconds] pass with or
  2201.          without finding "prompt string" execution of the script
  2202.          continues.
  2203.  
  2204.          You can scan for more than one value by separating the values
  2205.          using "|" bar characters.  For example, WAITFOR "Yes|No"
  2206.          would wait for either "Yes" or "No" to be received.  You can
  2207.          later test which value was received by using the FOUND=
  2208.          function.
  2209.  
  2210.  
  2211.          WEEKDAY                                       Type: function
  2212.  
  2213.          The WEEKDAY function returns the day of the week in numeric
  2214.          form.  Sunday=1, Monday=2, Tuesday=3, Wednesday=4,
  2215.          Thursday=5, Friday=6, Saturday=7.  You can use this function
  2216.          with the IF function to find out which day of the week today
  2217.          falls upon.
  2218.  
  2219.  
  2220.  
  2221.                                        34
  2222.  
  2223.  
  2224.  
  2225.  
  2226.          Special @variables
  2227.          ------------------
  2228.  
  2229.          1stReader maintains special @variables that can be used by
  2230.          scripts.  Here is a list of variables supported:
  2231.  
  2232.  
  2233.          @BBSNAME@               The name of the BBS.
  2234.  
  2235.          @USER@                  The name of the LOGIN field in the
  2236.                                  BBS record.
  2237.  
  2238.          @PASSWORD@              The password field in the BBS record.
  2239.  
  2240.  
  2241.          @SYSTEMDIR@             Location of the 1stReader system
  2242.                                  subdirectory.
  2243.  
  2244.          @PACKETDIR@             Location of the mail packet
  2245.                                  subdirectory.
  2246.  
  2247.          @DLDIR@                 Location of the file download
  2248.                                  subdirectory.
  2249.  
  2250.          @REPDIR@                Location of the replies subdirectory.
  2251.  
  2252.          @PROGDIR@               Location of the PROGRAMS
  2253.                                  subdirectory.
  2254.  
  2255.          @LANGAUGE@              The language version field from the
  2256.                                  BBS record.  If the language value is
  2257.                                  set to "0" then this variable will be
  2258.                                  set to blank.
  2259.  
  2260.          @QMAIL@                 This variable is set to the name of
  2261.                                  the door command for the BBS.
  2262.  
  2263.          @COMMAND@               This variable will check to see if a
  2264.                                  reply packet is available for
  2265.                                  uploading.  If a packet is found then
  2266.                                  "U;D" is assigned to the variable.
  2267.                                  Otherwise, "D" is assigned.
  2268.  
  2269.          @CONFERENCE@            The conference number field
  2270.                                  from the BBS record.  This value is
  2271.                                  used to join a conference before
  2272.                                  calling the Qmail Door if it is to be
  2273.                                  called from another conference.
  2274.  
  2275.          @DATE@                  Replaced with today's date.
  2276.  
  2277.          @TIME@                  Replaced with the current time.
  2278.  
  2279.                                        35
  2280.  
  2281.  
  2282.  
  2283.  
  2284.          @GRAPHICS@              Set to "Y" if you have enabled
  2285.                                  graphics for this BBS.  Otherwise, it
  2286.                                  it is set to "N".
  2287.  
  2288.          @FIRST@                 Set to the user's FIRST name.
  2289.  
  2290.  
  2291.          Special characters
  2292.          ------------------
  2293.  
  2294.          1stReader interprets two special characters for values.  The
  2295.          first character is a carat "^".  1stReader will convert the
  2296.          next character, if alphabetical, into a CONTROL sequence.
  2297.          For example, "^G" will ring a bell or "^M" is a carriage
  2298.          return.
  2299.  
  2300.          You can also use "X'" to convert any hexadecimal value into a
  2301.          single character.  For example, "X'1B" converts into the ESC
  2302.          character.
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  
  2315.  
  2316.  
  2317.  
  2318.  
  2319.  
  2320.  
  2321.  
  2322.  
  2323.  
  2324.  
  2325.  
  2326.  
  2327.  
  2328.  
  2329.  
  2330.  
  2331.  
  2332.  
  2333.  
  2334.  
  2335.  
  2336.  
  2337.                                        36
  2338.  
  2339.  
  2340.  
  2341.  
  2342.          Hints and Tips
  2343.          --------------
  2344.  
  2345.          This section contains 1stReader features and hints that do
  2346.          not necessarily fit into any of the other areas discussed
  2347.          earlier.
  2348.  
  2349.  
  2350.  
  2351.          Support for .BIN and .B1N files
  2352.          -------------------------------
  2353.  
  2354.          1stReader can display .BIN files created by THEDRAW.  1st
  2355.          also supports what we call ".B1N" (Bee One Enn) files.  A
  2356.          .B1N file contains TWO .BIN files copied together.  The first
  2357.          4000 bytes of the file (or the first .BIN file) is a
  2358.          monochrome version of the screen display.  The second 4000
  2359.          bytes (or the second .BIN file) contains the color version.
  2360.          You can create a .B1N file by creating two .BIN files inside
  2361.          THEDRAW and then copying them together at the DOS command
  2362.          prompt, like this:
  2363.  
  2364.                        COPY TEST.B1N+MONO.BIN+COLOR.BIN
  2365.  
  2366.          1stReader displays the monochrome version of the file if the
  2367.          color display switch is turned OFF.  Otherwise, the color
  2368.          version of the file is displayed.
  2369.  
  2370.          1stReader will find .BIN and .B1N files when looking for
  2371.          $$CALL files.  The order of the search is:
  2372.  
  2373.                                     .ASC
  2374.                                     .ANS
  2375.                                     .B1N
  2376.                                     .BIN
  2377.  
  2378.  
  2379.          The WELCOME file
  2380.          ----------------
  2381.  
  2382.          When you startup 1stReader it will look for a file named
  2383.          WELCOME in the system subdirectory.  This can be a customized
  2384.          file created by the user.  WELCOME.ASC, WELCOME.ANS,
  2385.          WELCOME.B1N and WELCOME.BIN are supported.
  2386.  
  2387.  
  2388.  
  2389.  
  2390.  
  2391.  
  2392.  
  2393.  
  2394.  
  2395.                                        37
  2396.  
  2397.  
  2398.  
  2399.  
  2400.          Using KEYBOARD.$$$ from the internal editor
  2401.          -------------------------------------------
  2402.  
  2403.          If you shell to a program while inside 1stReader's internal
  2404.          editor and KEYBOARD.$$$ is created, then the first line of
  2405.          KEYBOARD.$$$ is pasted into the text at the current cursor
  2406.          location when control returns to 1stReader.
  2407.  
  2408.          This feature lets third-party developers create "Usenet
  2409.          address books" so they can pass back Usenet addresses into
  2410.          replies.  Of course, there can be hundreds of uses for this
  2411.          feature too.
  2412.  
  2413.  
  2414.          Pre-Print and Post-Print strings
  2415.          --------------------------------
  2416.  
  2417.          You can add pre- and post-printing initialization strings to
  2418.          1stReader by using our 1STTEXT.EXE editing program.  This
  2419.          program, which is available on our customer support system
  2420.          (you can use our DLXTEXT.EXE program too) lets you edit the
  2421.          1STTEXT file.
  2422.  
  2423.          Record #282 is reserved for any printer initialization string
  2424.          you require.  Record #283 is reserved for any post-printing
  2425.          string you require.
  2426.  
  2427.  
  2428.          Printer definition
  2429.          ------------------
  2430.  
  2431.          Record #273 in 1STTEXT is used to declare the name of the
  2432.          printer on your system.  Currently, it defaults to "PRN" but
  2433.          you can send printer output anywhere you wish by changing
  2434.          record #273
  2435.  
  2436.  
  2437.          Create your OWN help files
  2438.          --------------------------
  2439.  
  2440.          You can "over-ride" the internal help screens we have
  2441.          provided in 1stReader by creating your own HELP.xxx files.
  2442.          "xxx" corresponds to the help record number.  You can create
  2443.          custom help files for a BBS by storing them in the BBS
  2444.          subdirectory.  Or, you can globally affect the files by
  2445.          storing them in the SYSTEM subdirectory.
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.                                        38
  2454.  
  2455.  
  2456.  
  2457.  
  2458.          1stReader is network ready
  2459.          --------------------------
  2460.  
  2461.          You can run multiple users from one copy of 1stReader kept on
  2462.          a network.  Or, you can let family members keep their own
  2463.          setups without requiring multiple copies of 1stReader.
  2464.  
  2465.          All you need to do is to create separate subdirectories for
  2466.          each user.  You could name them C:\1ST\JOHN, C:\1ST\BILL,
  2467.          etc.  You can even place them on separate drives if you wish.
  2468.  
  2469.          Each user subdirectory MUST have a copy of 1ST.SET and
  2470.          1ST.KEY in order to work.  1stReader will create unique files
  2471.          and BBS subdirectories for each user.
  2472.  
  2473.          In order to find the 1stReader system files, you need to use
  2474.          the DOS environment variable "SET 1ST=C:\1ST\" (change this
  2475.          to point to your 1stReader SYSTEM location) in your
  2476.          AUTOEXEC.BAT file.  This lets 1st find the files it needs to
  2477.          run over a networked system.  Remember, you must still
  2478.          execute the program by typing C:\1ST\1ST from the DOS command
  2479.          line or a batch file.
  2480.  
  2481.          IMPORTANT NOTICE: YOU *MUST* PURCHASE MULTIPLE COPIES OF
  2482.                            1STREADER FOR EACH USER ON YOUR SYSTEM
  2483.                            IF USED IN A BUSINESS.  IT IS A VIOLATION
  2484.                            OF OUR LICENSE AGREEMENT AND COPYRIGHTS IF
  2485.                            YOU ALLOW MULTIPLE USERS TO OPERATE
  2486.                            1STREADER USING THE SAME 1ST.KEY FILE.
  2487.  
  2488.          Notice to families:  We consider 1stReader to be 'marital
  2489.                               property'.  Any family member who
  2490.                               lives under your roof may use your
  2491.                               copy of 1stReader.
  2492.  
  2493.  
  2494.  
  2495.  
  2496.  
  2497.  
  2498.  
  2499.  
  2500.  
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.                                        39
  2512.  
  2513.  
  2514.  
  2515.  
  2516.          GO.ASC, GO.ANS, GO.BIN, GO.B1N
  2517.          ------------------------------
  2518.  
  2519.          In the file manager, after you select a subdirectory, if
  2520.          1stReader finds any of these files in the current
  2521.          subdirectory they are immediately displayed to the user.
  2522.  
  2523.          The idea behind this feature is to allow archived programs
  2524.          and "services" that are sent by Qmail Door to have their own
  2525.          "introduction" when used with 1stReader.
  2526.  
  2527.          A word about services and 1stReader.  Offline games are now
  2528.          very easy to create using 1stReader's service capabilities.
  2529.          Your game can use one of these GO display files to welcome
  2530.          the user to the game.  If a READ.ME file is found in the
  2531.          service then that file is automatically displayed to the user
  2532.          (game news or rules could be posted here).  Finally, you can
  2533.          provide a GO.BAT file so all the user has to do to start your
  2534.          game is to click on the "GO" button.  Your game software can
  2535.          then write any files that are needed to be sent back up to
  2536.          The Qmail Door by storing them inside the REP-WORK
  2537.          subdirectory.  The contents of this subdirectory are
  2538.          compressed into the .REP mail packet and transmitted back to
  2539.          Qmail Door.
  2540.  
  2541.          If you are interested in creating offline games for use with
  2542.          Qmail Door and 1stReader, please give our customer support
  2543.          system a call.  We'll be happy to show you everything you
  2544.          need.
  2545.  
  2546.          Trivia games could be a good example of an offline game.
  2547.  
  2548.  
  2549.  
  2550.          Automatic DOORWAY ON and DOORWAY OFF modes
  2551.          ------------------------------------------
  2552.  
  2553.          1stReader's internal terminal module can look for special
  2554.          codes that can be sent by the remote system to turn the
  2555.          "Doorway" mode ON or OFF.  These codes are stored in records
  2556.          #274 and #275 of 1STTEXT.
  2557.  
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.  
  2568.  
  2569.                                        40
  2570.  
  2571.  
  2572.  
  2573.  
  2574.          "Header" files
  2575.          --------------
  2576.  
  2577.          1stReader supports "Header" files that can be used in your
  2578.          editor whenever you enter a message.  If the file
  2579.          "HEADER.HDR" is found in either the BBS or SYSTEM
  2580.          subdirectory, then 1stReader will read it and copy it into
  2581.          the "top" of your reply.  You can use any @variable you wish
  2582.          in your header.
  2583.  
  2584.          1stReader also looks for the text "∙HEADER:<name>" in a
  2585.          message.  If this text is found and <name>.HDR exists in
  2586.          either the BBS or SYSTEM subdirectories, then 1stReader uses
  2587.          this header file instead to begin your replies.
  2588.  
  2589.          This feature works with our own "PCB/Usenet Gateway" for
  2590.          systems that wish to create RFC-822 headers automatically.
  2591.          We reserve the name "USENET.HDR" for our gateway.  However,
  2592.          other names can just as easily be used for other systems.
  2593.  
  2594.          You can also have separate "Header" files for public and
  2595.          private messages.  1stReader will determine which file is
  2596.          used depending if you are replying to a public or private
  2597.          message.
  2598.  
  2599.                         HEADER.PUB - Public messages
  2600.                         HEADER.PRI - Private messages
  2601.  
  2602.          Sysops, this is a good candidate for your 1ST-TIME.ZIP files
  2603.  
  2604.  
  2605.          Auto sensing dialog boxes
  2606.          -------------------------
  2607.  
  2608.          If you have defined the dialog boxes to use the same color as
  2609.          the current background, 1stReader switches to a WHITE
  2610.          background in the dialog box automatically so the box will
  2611.          stand out.  If your background is white (and you are using
  2612.          color) then light blue will be substituted.
  2613.  
  2614.  
  2615.          "Ok" and "Cancel" buttons
  2616.          -------------------------
  2617.  
  2618.          If you are using a mouse then 1stReader will place these
  2619.          mouse buttons inside keyboard dialog boxes.  They do not show
  2620.          up if you are not using a mouse.
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.                                        41
  2628.  
  2629.  
  2630.  
  2631.  
  2632.          Attention John Hancock fans!
  2633.          ----------------------------
  2634.  
  2635.          1stReader always supports the famous "DOS:JH3" tagline.  This
  2636.          allows you to call John Hancock from inside 1stReader.  If
  2637.          you like to use a lot of taglines in the internal tagline
  2638.          manager, picking out that single "DOS:JH3" tagline could be a
  2639.          bear.
  2640.  
  2641.          Instead, create yourself a "picklist" for use at the tagline
  2642.          prompt when saving a message by arrowing into this field and
  2643.          pressing ALT+F8.  Use this entry for your picklist:
  2644.  
  2645.                                 TITLE=Taglines
  2646.                                 DOS:JH3
  2647.  
  2648.          Press [F8] to call up the picklist.  When you select "DOS:
  2649.          JH3" from the list 1stReader will call John Hancock
  2650.          automatically and pass the tagline to you.
  2651.  
  2652.          1stReader supports the "DOS:" command in taglines.  If this
  2653.          string is found then 1stReader will shell to DOS and execute
  2654.          the command immediately after "DOS:".
  2655.  
  2656.  
  2657.          Specialized conference .BAT, .BTM, .CMD and .LST files
  2658.          ------------------------------------------------------
  2659.  
  2660.          If you create files using these extensions, but using the
  2661.          names of conferences, then these files are active when you
  2662.          press F6 (for .BAT files), F7 (or .CMD files) or F8 (or .LST
  2663.          files).
  2664.  
  2665.          This lets you create specific files that only work when you
  2666.          have joined a particular conference.
  2667.  
  2668.  
  2669.          Support for DOOR.ID
  2670.          -------------------
  2671.  
  2672.          If 1stReader finds a DOOR.ID inside the QWK mail packet and
  2673.          the entry "CONTROLTYPE =" is found inside, then, when you add
  2674.          or drop conferences using 1stReader, it reverts back to the
  2675.          "old" method of writing one message at a time to add or drop
  2676.          the conference.   This method is provided for backwards
  2677.          compatibility with older mail doors.
  2678.  
  2679.  
  2680.  
  2681.  
  2682.  
  2683.  
  2684.  
  2685.                                        42
  2686.  
  2687.  
  2688.  
  2689.  
  2690.          Downloading files
  2691.          -----------------
  2692.  
  2693.          If you download files from 1stReader's internal terminal
  2694.          module or from your favorite terminal program, 1stReader will
  2695.          automatically invoke the file manager and take you to your
  2696.          download subdirectory when you exit the terminal mode.
  2697.  
  2698.          This feature lets you manage the files you just downloaded in
  2699.          the online session.
  2700.  
  2701.  
  2702.          Longer signatures
  2703.          -----------------
  2704.  
  2705.          1stReader provides you with a "signature" field that will
  2706.          automatically place your name on the bottom of messages you
  2707.          enter in the reader.
  2708.  
  2709.          However, you may find you need more lines in your signature
  2710.          or you might like to incorporate graphics.  1stReader lets
  2711.          you use "SIG=<filespec>" as a signature.  This tells 1st to
  2712.          look for the file <filespec> in the BBS subdirectory or in
  2713.          the SYSTEM subdirectory.  If found, the file is imported
  2714.          automatically into your replies.
  2715.  
  2716.  
  2717.          Multiple signatures
  2718.          -------------------
  2719.  
  2720.          Sometimes having only one signature can be a limitation.
  2721.          1stReader lets you have up to 100 signatures per system if
  2722.          you need them.  The trick is to use the Picklist system.
  2723.          Instead of entering your name in the signature field use the
  2724.          entry "NAMES.LST".  Then, press the ALT+F8 key to create the
  2725.          picklist.  Here is an example:
  2726.  
  2727.                                 TITLE=Signatures
  2728.                                 Sparky
  2729.                                 Qmail Support
  2730.                                 SIG=NAME1
  2731.  
  2732.          When you save the message you'll be asked to select the
  2733.          signature you wish to use.  Notice the "SIG=NAME1" entry.
  2734.          If you pick that entry 1stReader will use the file "NAME1"
  2735.          as your signature.
  2736.  
  2737.  
  2738.  
  2739.  
  2740.  
  2741.  
  2742.  
  2743.                                        43
  2744.  
  2745.  
  2746.  
  2747.  
  2748.          Support for the "1ST" file
  2749.          --------------------------
  2750.  
  2751.          If 1stReader finds the file "1ST" inside a mail packet, it
  2752.          will display this file to the user immediately after the
  2753.          "Welcome" screen.
  2754.  
  2755.          This file is provided so sysops can pass information on to
  2756.          their offline mail users that might not apply to their
  2757.          regular "online" users.
  2758.  
  2759.  
  2760.          Automatic SuperShell
  2761.          --------------------
  2762.  
  2763.          If you have not turned SuperShell ON in Setup's "Switches"
  2764.          section and you attempt to shell to DOS with less than 125k
  2765.          of memory available, 1stReader will automatically invoke
  2766.          SuperShell for you.
  2767.  
  2768.  
  2769.          Nonstandard serial ports
  2770.          ------------------------
  2771.  
  2772.          1stReader will support nonstandard COM3 and COM4 setups as
  2773.          long as they do not use the "high" interrupts.  1stReader
  2774.          defaults COM3: and COM4: to use the industry standard
  2775.          addresses, but you can override this by using the format:
  2776.  
  2777.                                   N IRQ/BASE
  2778.  
  2779.          "N" is the serial port number (3 or 4).  "IRQ" is the
  2780.          interrupt request line value while "BASE" is the base
  2781.          address, in hexadecimal.  If your system uses the industry
  2782.          standard addresses simply use "3" or "4" in this field.
  2783.  
  2784.          Also note that 1stReader supports the "%4" parameter in
  2785.          the Zmodem upload and download commands too.  This parameter
  2786.          is replaced with the BASE,IRQ value so DSZ can use the
  2787.          "portx=" command line parameter.
  2788.  
  2789.  
  2790.  
  2791.  
  2792.  
  2793.  
  2794.  
  2795.  
  2796.  
  2797.  
  2798.  
  2799.  
  2800.  
  2801.                                        44
  2802.  
  2803.  
  2804.  
  2805.  
  2806.          New commands supported in DOOR.ID
  2807.          ---------------------------------
  2808.  
  2809.          1stReader will use these commands if found in a DOOR.ID file
  2810.          inserted into a QWK mail packet:
  2811.  
  2812.                                 MIXEDCASE = YES
  2813.                                 FIDOTAG = YES
  2814.  
  2815.          If "MIXEDCASE = YES" is found then the user will be allowed
  2816.          to address messages using upper and lower case.  If the
  2817.          string "FIDOTAG = YES" is found then messages left by
  2818.          1stReader will automatically use Fido-compliant taglines.
  2819.          You can use "Fido" taglines "on the fly" by including the
  2820.          string "@FIDO@" in your replies if you wish.
  2821.  
  2822.  
  2823.          LIST is restricted
  2824.          ------------------
  2825.  
  2826.          You cannot list files that end with a .COM, .EXE, .OVL, .ZIP,
  2827.          .ARC, .ARJ, .LHA or .ZOO file extensions from within
  2828.          1stReader.
  2829.  
  2830.  
  2831.          Robocomm-named packets supported
  2832.          --------------------------------
  2833.  
  2834.          1stReader will automatically find mail packets that have been
  2835.          named using Robocomm's "nPACKET.QWK" format.  "n" is the
  2836.          packet number received for the bulletin board system.
  2837.  
  2838.  
  2839.          QMAIL4 is assumed
  2840.          -----------------
  2841.  
  2842.          If you forget to enter the DOOR command in the bulletin
  2843.          board's dialing entry then 1stReader will default to
  2844.          "QMAIL4".
  2845.  
  2846.  
  2847.          Three button mice users
  2848.          -----------------------
  2849.  
  2850.          If you use a three button mouse you'll find that clicking on
  2851.          the middle mouse button will "ping pong" the mouse cursor
  2852.          between the upper screen and mouse buttons on the bottom of
  2853.          the screen.  This feature works in the...
  2854.  
  2855.                              File management screen
  2856.                              List messages screen
  2857.                              Mail packets screen
  2858.  
  2859.                                        45
  2860.  
  2861.  
  2862.  
  2863.  
  2864.          Using SPACE BAR and SHIFT+ENTER
  2865.          -------------------------------
  2866.  
  2867.          1stReader supports use of the space bar as a method to move
  2868.          through a mail packet.  You can use nothing but the space to
  2869.          read messages once you have selected the "Read" button from
  2870.          the "Read messages" screen.
  2871.  
  2872.          If you are using 1stReader on a laptop check out the
  2873.          SHIFT+ENTER key combo.  On laptops it can be hard finding
  2874.          that PgDn key.  If you hold down SHIFT while pressing the
  2875.          ENTER key 1stReader will think you pressed the PgDn key.
  2876.  
  2877.  
  2878.          Protect those 'questionable' taglines
  2879.          -------------------------------------
  2880.  
  2881.          If you place a question mark as the first character in a
  2882.          tagline, 1stReader will ask you to confirm use of the tagline
  2883.          in a message.
  2884.  
  2885.          This feature helps protect you from using 'questionable'
  2886.          taglines you might use in personal messages but not in public
  2887.          messages.
  2888.  
  2889.  
  2890.          'Hotkey' your .CMD and .LST entries
  2891.          -----------------------------------
  2892.  
  2893.          You can add 'hotkey' support for your .CMD and .LST files by
  2894.          placing the character "»" (ASCII 175) directly *IN FRONT* of
  2895.          the character you wish to use for the hotkey entry.
  2896.  
  2897.          1stReader will strip the "»" character from the string when
  2898.          it is returned back to you.
  2899.  
  2900.  
  2901.          Entry fields are accessible
  2902.          ----------------------------
  2903.  
  2904.          Entry fields are accessible through the @API$(xxx) function.
  2905.          All field entries are numbered starting with field #1 at the
  2906.          top of your screen.  The @API$(xxx) function lets you access
  2907.          the first field by using @API$(101).  The second field entry
  2908.          is accessible by using @API$(102), etc.
  2909.  
  2910.          This feature lets you pass field entries that are on the
  2911.          current screen to a shelled application.  Remember that these
  2912.          functions only return the field entries for the 'current'
  2913.          screen.  If the current screen does not contain any field
  2914.          entries, the @API$(xxx) function returns a null string.
  2915.  
  2916.  
  2917.                                        46
  2918.  
  2919.  
  2920.  
  2921.  
  2922.          Sysops can use Qmail Door in DOS using 1stReader
  2923.          ------------------------------------------------
  2924.  
  2925.          If you own a copy of Qmail Door you can have 1stReader scan
  2926.          for new mail and upload replies by using the $$MAIL.BAT and
  2927.          $$REPLY.BAT files.
  2928.  
  2929.          Your $$MAIL.BAT file should read:
  2930.  
  2931.          @echo off
  2932.          cls
  2933.          c:
  2934.          cd \pcb
  2935.          PCB145 /USERSYS;<first>;<last>;PWRD:<password>;TPA:QMAIL4
  2936.          c:\pcb\qm4\qmail4 U;D;Y;G
  2937.          PCB145 /READSYS
  2938.  
  2939.  
  2940.          Your $$REPLY.BAT file should read:
  2941.  
  2942.          @echo off
  2943.          cls
  2944.          c:
  2945.          cd \pcb
  2946.          PCB145 /USERSYS;<first>;<last>;PWRD:<password>;TPA:QMAIL4
  2947.          c:\pcb\qm4\qmail4 U;G
  2948.          PCB145 /READSYS
  2949.  
  2950.          <first> is your first name used to log into your PCBoard
  2951.          system.  <last> is your last name.  <password> is the
  2952.          password you use to log into your PCBoard system.  You might
  2953.          need to edit these batch files to change the location of your
  2954.          PCBoard subdirectory.  These batch files only work with
  2955.          PCBoard 14.5a.
  2956.  
  2957.          Simply copy these batch files into the 1stReader BBS
  2958.          subdirectory for your system and when you later select your
  2959.          system from 1stReader's menu, you'll go through DOS to
  2960.          transfer your mail packets instead of calling your system.
  2961.  
  2962.  
  2963.  
  2964.          Control characters in .LST files and KEYBOARD.$$$
  2965.          -------------------------------------------------
  2966.  
  2967.          1stReader lets you use control characters in your picklists
  2968.          and in KEYBOARD.$$$.  If you would like to force a carriage
  2969.          return you can use "^M" at the end of the entry.
  2970.  
  2971.          Remember that when you use picklists and KEYBOARD.$$$ from a
  2972.          keyboard entry field, the carriage return is automatically
  2973.          supplied by 1stReader.  This feature lets you force control
  2974.          characters while in the internal editor.
  2975.  
  2976.  
  2977.  
  2978.  
  2979.  
  2980.          $$DIAL.SCR supported
  2981.          --------------------
  2982.  
  2983.          This script file can be used to dial a bulletin board system
  2984.          in place of 1stReader's internal dialer.  The idea behind
  2985.          supporting this script file is to allow users to make long
  2986.          distance calls using SPRINT, MCI or other long distance
  2987.          carriers that require additional access codes.
  2988.  
  2989.          Placing $$DIAL.SCR inside the SCRIPTS subdirectory will force
  2990.          1stReader to use the script file everytime it calls a system,
  2991.          regardless if it is long distance or not.  We recommend that
  2992.          you place this file inside the individual BBS system
  2993.          subdirectory for better control.
  2994.  
  2995.  
  2996.          Addition bulletin board systems supported
  2997.          -----------------------------------------
  2998.  
  2999.          1stReader now has the ability to use different script files
  3000.          when calling bulletin board systems.  This means that if you
  3001.          are calling a Wildcat! system you can tell 1stReader to use
  3002.          the Wildcat! scripts.  By default, 1stReader always uses the
  3003.          PCBoard/Qmail Door script files.
  3004.  
  3005.          Each bulletin board system is assigned a script number.
  3006.          These numbers are assigned to the BBS when editing the BBS
  3007.          information screen.  The systems currently assigned are:
  3008.  
  3009.               Script type         Description
  3010.               -----------         ----------------------------------
  3011.                    1              PCBoard running Qmail Door
  3012.                    2              PCBoard running MarkMail Door
  3013.                    3              PCBoard running Kmail Door
  3014.                    4              PCBoard running CamMail Door
  3015.                    5              PCBoard running Rosemail Door
  3016.                   20              TBBS/QSO mail system
  3017.                   30              Wildcat!/Tomcat Door
  3018.                   40              The Major BBS
  3019.                   50              Maximus
  3020.                   60              Gap/MainMail
  3021.                   70              RBBS
  3022.                   71              TriBBS
  3023.                   72              GT
  3024.  
  3025.          For example, files for Wildcat! would be called:
  3026.  
  3027.                         30-MAIL.SCR         Upload/Download mail
  3028.                         30-REPLY.SCR        Upload mail only
  3029.                         30-CALL.SCR         Calls a Wildcat system
  3030.  
  3031.  
  3032.  
  3033.                                        48
  3034.  
  3035.  
  3036.  
  3037.  
  3038.          1stReader also supports the "xx-SETUP" file, where "xx" is
  3039.          the script type.  This file is displayed to the 1stReader
  3040.          user whenever they change BBS types.  It should contain
  3041.          information about what setup on the remote BBS your script
  3042.          requires in order to operate successfully.
  3043.  
  3044.          Sparkware reserves the right to assign 'Script types' values
  3045.          for consistency.  If you have created a script for a bulletin
  3046.          board system not listed please call our BBS at (615) 230-8822
  3047.          or our office at (615) 230-MAIL and let us know which number
  3048.          you wish to be issued.  Also, if you wish, please upload your
  3049.          script file to our BBS so everyone can enjoy using 1stReader
  3050.  
  3051.  
  3052.          Carriage returns in the modem initialization string
  3053.          ---------------------------------------------------
  3054.  
  3055.          You can use the character "{" in your modem init strings to
  3056.          indicate where a carriage return is to be inserted.
  3057.  
  3058.  
  3059.          SERVICES.NEW
  3060.          ------------
  3061.  
  3062.          Sysops can include a file named SERVICES.NEW in the QWK mail
  3063.          packets and 1stReader will display it when the user selects
  3064.          the 'Services' button.  This file is intended to give
  3065.          1stReader users an introduction to the services provided.
  3066.  
  3067.  
  3068.  
  3069.  
  3070.  
  3071.  
  3072.  
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079.  
  3080.  
  3081.  
  3082.  
  3083.  
  3084.  
  3085.  
  3086.  
  3087.  
  3088.  
  3089.  
  3090.  
  3091.                                        49
  3092.  
  3093.  
  3094.  
  3095.  
  3096.         File formats
  3097.         ------------
  3098.  
  3099.         1stReader Dialing Directory format:
  3100.  
  3101.         TYPE DialDirType
  3102.         PacketID AS STRING * 8    'Qmail Door ID
  3103.         SysName AS STRING * 40    'Name of system
  3104.         Login AS STRING * 25      'User's login name
  3105.         Password AS STRING * 12   'Password
  3106.         Phone1 AS STRING * 20     'Phone number 1
  3107.         MaxBaud1 AS LONG          'Maximum baud rate
  3108.         Phone2 AS STRING * 20     'Phone number 2
  3109.         MaxBaud2 AS LONG          'Maximum baud rate
  3110.         Phone3 AS STRING * 20     'Phone number 3
  3111.         MaxBaud3 AS LONG          'Maximum baud rate
  3112.         Phone4 AS STRING * 20     'Phone number 4
  3113.         MaxBaud4 AS LONG          'Maximum baud rate
  3114.         LastCall AS STRING * 11   'Last date/time called
  3115.         Blank AS STRING * 13      'Reserved for future use
  3116.         QmailCmd AS STRING * 40   'Qmail Door open command
  3117.         BitFlags AS STRING * 5    'Bitflags
  3118.         Language AS INTEGER       'Language number to select
  3119.         Conference AS INTEGER     'Conference number to join
  3120.         CallNumber AS INTEGER     'Number of calls placed
  3121.         Packets AS INTEGER        'Number of packets downloaded
  3122.         Replies AS INTEGER        'Number of replies uploaded
  3123.         CRC AS LONG               'CRC value of CNAMES.DAT
  3124.         Graphics AS STRING * 1    'Use graphics on this call? (Y if true)
  3125.         AliasName AS INTEGER      'Alias entry to use
  3126.         SysType AS INTEGER        'System type
  3127.         FIDOTags AS STRING * 1    'Fido-style tags?
  3128.         Empty AS STRING * 30
  3129.     END TYPE
  3130.  
  3131.  
  3132.  
  3133.         1stReader .SET file format:
  3134.  
  3135.     TYPE CfgType
  3136.         SetName AS STRING * 40    'Name of setup
  3137.         Signature AS STRING * 40  'Your signature
  3138.         BitFlags AS STRING * 10   'Bitflags
  3139.         Editor AS STRING * 40     'Text editor command
  3140.         Original AS STRING * 40   'Original filespec
  3141.         Reply AS STRING * 40      'Reply filespec
  3142.         NewUser AS STRING * 2     'Communications port
  3143.         MaxBaudRate AS LONG       'Maximum baud rate of your modem
  3144.         Init AS STRING * 40       'Modem init string
  3145.         Prefix AS STRING * 40     'Modem dialing prefix
  3146.         Suffix AS STRING * 40     'Modem dialing suffix
  3147.         DTime AS INTEGER          'Dialing time (in seconds)
  3148.  
  3149.  
  3150.  
  3151.  
  3152.         RTime AS INTEGER          'Redialy delay (in seconds)
  3153.         Attempts AS INTEGER       'Number of redial attempts
  3154.         FlowCtrl AS INTEGER       'Flow control
  3155.         UlCmd AS STRING * 60      'Zmodem upload command
  3156.         DlCmd AS STRING * 60      'Zmodem download command
  3157.         Sort AS INTEGER           'Reader sort order
  3158.         Quote AS STRING * 5       'Quote characters
  3159.         Tagline AS INTEGER        'Last tagline used
  3160.         Folder AS STRING * 8      'Last folder name used
  3161.         ScanFlag AS STRING * 2    'Zippy scan flags
  3162.         Scan1 AS STRING * 45      'Zippy scan #1
  3163.         Scan2 AS STRING * 45      'Zippy scan #2
  3164.         Scan3 AS STRING * 45      'Zippy scan #3
  3165.         Scan4 AS STRING * 45      'Zippy scan #4
  3166.         ReFolder AS STRING * 8    'Last REPLY folder
  3167.         LastPrint AS STRING * 40  'Last print file
  3168.         PacketDir AS STRING * 44  'Location of mail packets
  3169.         LastDir AS STRING * 40    'Last file scan from opening menu
  3170.         Commport AS STRING * 10   'Communications port number
  3171.         DlDir AS STRING * 44      'Location of file downloads
  3172.         ClrColors AS STRING * 50  'Color switch colors
  3173.         MonoColors AS STRING * 50 'Mono switch colors
  3174.         BDate AS STRING * 8       'Date of last beta news
  3175.         BTime AS STRING * 8       'Time of last beta news
  3176.         ProgramDir AS STRING * 44 'Location of system zips
  3177.         WorkDir AS STRING * 44    'Location of work area
  3178.         Dealer AS STRING * 8      'ID of the dealer who sold reader
  3179.         CardNo AS STRING * 40     'Calling card number
  3180.         RepDir AS STRING * 44     'Location of reply packets
  3181.         LastSys AS STRING * 8     'PacketID of last system used
  3182.         LastImport AS STRING * 44 'Last file area imported
  3183.         ExtList AS STRING * 40    'External LIST command
  3184.     END TYPE
  3185.  
  3186.